TOML vers JSON

Convertissez des documents TOML en JSON avec une indentation configurable et une sortie en mode compact.

Convertissez des documents TOML en JSON avec une indentation configurable et une sortie en mode compact. Convertissez des documents TOML en JSON avec une indentation configurable et une sortie en mode compact.

Sortie

Contexte

Pourquoi vouloir du TOML en JSON

Le JSON est la langue franque de la toile : chaque API le parle, chaque éditeur peut le colorer, et chaque langage a un analyseur dans sa bibliothèque standard. Le TOML excelle pour la configuration éditée par l'humain mais est moins universellement pris en charge comme format d'échange de données à l'exécution. Quand vous devez alimenter une configuration TOML dans un outil qui ne consomme que du JSON (bancs d'essai web, validateurs de schéma, générateurs de code, etc.), un convertisseur TOML-vers-JSON fiable sauve la mise.

La conversion est pour l'essentiel sans perte car les deux formats sont assez expressifs pour représenter les mêmes primitives. Les rares types spécifiques au TOML (chaînes multilignes, dates) se traduisent en chaînes simples ; les rares valeurs spécifiques au JSON (null) se traduisent en littéral JSON null, que le TOML n'a pas d'équivalent natif.

Fonctionnalités utiles à connaître

Le convertisseur offre une bascule d'impression jolie (avec indentation de 2/4 espaces) et un mode compact (ligne unique). Pour de très grands fichiers de configuration, la sortie compacte est beaucoup plus facile à coller dans un corps de requête curl. Le bouton d'inversion renvoie la sortie JSON dans la zone de saisie pour que vous puissiez la rééditer et la réexporter en TOML.

Astuces de flux de travail

Après la conversion, validez le JSON avec un validateur de schéma (ajv, jsonschema) avant de le pousser vers un outil en aval. L'analyseur TOML est strict : il rejettera les scalaires non quotés commençant par des chiffres, les tables en ligne avec commentaires, et autres erreurs courantes. Utilisez les messages d'erreur pour corriger le document source, pas le JSON.

Exemple pratique

Supposons que vous maintenez un extrait de pyproject.toml qui liste la configuration d'exécution de votre outil sous [tool.beetools]. Pour alimenter la même configuration dans un pipeline de build JavaScript qui n'accepte que le JSON, passez l'extrait par ce convertisseur. La sortie préserve la hiérarchie des tables, donc un bloc imbriqué comme [tool.beetools.cache] devient { "tool": { "beetools": { "cache": { ... } } } }. Les clés pointées s'effondrent en objets imbriqués à la sortie, reflétant la façon dont l'analyseur TOML les a initialement construites. Une fois le JSON obtenu, validez-le avec ajv ou jsonschema avant de le transmettre en aval -- le convertisseur ne traduit que la syntaxe.

Développé en interne. Le TOML est analysé avec la bibliothèque BSD-3 smol-toml incluse dans public/assets, puis émis en JSON via JSON.stringify natif. Aucun téléversement.

Foire aux questions

Le convertisseur prend-il en charge les fonctionnalités TOML 1.0 ?
Oui. Le convertisseur analyse le TOML 1.0, y compris les tableaux de tables (`[[name]]`), les tables en ligne (`{ key = "value" }`) et les clés pointées (`a.b.c`).
Comment les dates TOML sont-elles émises en JSON ?
Les dates sans composante horaire deviennent des chaînes JSON au format `YYYY-MM-DD`. Les date-heures deviennent `YYYY-MM-DDTHH:MM:SS[.fraction][Z|+offset]`. Le consommateur JSON récepteur peut les analyser avec la bibliothèque de dates de son langage.
Et les chaînes multilignes TOML ?
Elles sont émises comme des chaînes JSON classiques avec des caractères de saut de ligne intégrés. Le JSON ne peut pas préserver le style littéral exact, mais la valeur analysée est identique.
Le convertisseur peut-il gérer les clés pointées ?
Oui. `a.b.c = 1` devient `{ "a": { "b": { "c": 1 } } }`. Le convertisseur développe chaque clé pointée en objets imbriqués.
Le convertisseur rejettera-t-il un TOML invalide ?
Oui. L'analyseur lève une erreur avec un pointeur ligne/colonne sur le premier jeton invalide. Corrigez le TOML source et réessayez.
Mon TOML est-il téléversé ?
Non. L'analyse se fait localement via la bibliothèque smol-toml incluse ; rien ne quitte le navigateur.