Convertir JSON en TOML — Numio
Convertit un objet JSON en TOML. Les objets imbriqués deviennent des sections [table], les tableaux d’objets des [[array of tables]], et les clés à valeur null sont supprimées, car TOML n’a pas de null.
Transformer une configuration JSON en syntaxe pyproject.toml, Cargo.toml, wrangler.toml ou de configuration Hugo.
Quand l’utiliser
- Transformer une configuration JSON en syntaxe pyproject.toml, Cargo.toml, wrangler.toml ou de configuration Hugo.
- Transférer des paramètres générés en JSON par un script vers un fichier de configuration TOML.
Mode d’emploi
- Collez un objet JSON (la racine doit être un objet, pas un tableau) dans l’éditeur de gauche, ou utilisez le bouton de chargement de fichier pour ouvrir un fichier UTF-8.
- Vérifiez le TOML à droite : les clés scalaires viennent en premier, puis les sections [table] et [[array]].
- Copiez le résultat, puis comparez-le aux clés documentées de l’outil cible avant de remplacer votre configuration.
Objet JSON
{
"title": "My App",
"port": 8080,
"debug": false,
"owner": { "name": "Ada", "since": "2024-01-05T10:00:00Z" },
"servers": [
{ "host": "a.example.com", "weight": 3 },
{ "host": "b.example.com", "weight": 1 }
],
"ports": [80, 443]
}TOML
title = "My App" port = 8_080 debug = false ports = [ 80, 443 ] [owner] name = "Ada" since = "2024-01-05T10:00:00Z" [[servers]] host = "a.example.com" weight = 3 [[servers]] host = "b.example.com" weight = 1
Détails et limites
Les entiers de 1000 ou plus reçoivent des séparateurs underscore (8080 devient 8_080). C’est du TOML valide, lu comme le même nombre.
Les chaînes de date restent des chaînes entre guillemets ; le JSON n’a pas de type date, donc aucune valeur datetime TOML n’est produite.
Les clés à valeur null sont omises sans avertissement, et 1.0 en JSON est écrit comme l’entier 1.
S’exécute dans votre navigateur avec @iarna/toml. Une liste mêlant des objets à d’autres valeurs est rejetée, car les tableaux de tables TOML ne peuvent pas les contenir. Les sous-tables sont indentées de deux espaces ; TOML l’ignore.
FAQ
Puis-je convertir un tableau JSON à la racine ?
Non. Un document TOML doit être une table : la page indique donc que le JSON est un tableau et suggère de l’envelopper dans un objet, par ex. {"items": [...]}.
Que deviennent les valeurs null ?
La clé est supprimée. {"a": null} produit une sortie vide. Utilisez une chaîne vide ou retirez la clé délibérément si la cible l’attend.
Pourquoi les nombres contiennent-ils des underscores ?
Le sérialiseur formate les grands entiers avec des séparateurs de chiffres _, autorisés par la spécification TOML. Tout parser TOML lit 8_080 comme 8080.