Convertisseur JSON vers TOML
Collez du JSON, obtenez du TOML instantanément dans le navigateur. Gestion sûre des null, table racine vérifiée, sortie prête pour Cargo.toml. 100% privé.
Options · 2 espaces
Qu'est-ce que le TOML et pourquoi convertir depuis JSON ?
TOML (Tom's Obvious, Minimal Language) est un format de fichier de configuration bâti pour être sans ambiguïté et facile à lire et à éditer par des humains. C'est le format de configuration standard de l'écosystème Rust (Cargo.toml), de l'empaquetage Python moderne (pyproject.toml) et d'outils comme Hugo, Netlify, Poetry et Foundry. JSON est le format machine universel que produisent les outils et les API. Convertir le JSON en TOML est courant lorsque vous avez des données structurées en JSON mais qu'il vous faut une config TOML éditable par un humain comme destination — générer un Cargo.toml ou un pyproject.toml, ou transformer les réglages JSON d'une application en un fichier de config lisible.
TOML est plus structuré que JSON, et cet outil transforme cette rigueur en accompagnement plutôt qu'en échecs cryptiques :
**1. Exigence de table racine.** Chaque document TOML est une table à la racine — un tableau ou un scalaire nu n'est pas du TOML valide. Au lieu d'émettre une sortie invalide pour une entrée { tableau de premier niveau }, cet outil le détecte et vous indique exactement comment envelopper vos données sous une clé, pour toujours obtenir un TOML valide ou une explication claire.
**2. Gestion des null sûre et transparente.** JSON a null ; TOML non. La plupart des convertisseurs plantent ou écartent silencieusement les données. Cet outil est explicite : les clés d'objet à valeur null sont supprimées et les clés retirées sont listées dans un avertissement, et un null dans un tableau — qui n'a aucune représentation TOML valide — produit une erreur précise pointant le chemin. Vous n'êtes jamais surpris par des données manquantes.
**3. Sortie TOML idiomatique.** Les objets imbriqués deviennent des [tables], les objets profondément imbriqués deviennent des tables pointées ([tool.ruff]), et les tableaux d'objets deviennent des tableaux de tables ([[section]]) — la forme qu'utilisent les vrais fichiers Cargo.toml et pyproject.toml. La conversion est propulsée par la bibliothèque smol-toml sans dépendance, conforme à TOML 1.0.0.
**4. Confidentialité 100% dans le navigateur.** Votre JSON — qui peut contenir des identifiants, des jetons ou des détails de services internes — ne quitte jamais votre navigateur. Aucun téléversement, aucun serveur, aucune journalisation. Confirmez-le dans l'onglet Réseau de votre navigateur.
Besoin du sens inverse ? Utilisez le convertisseur TOML vers JSON. Vous travaillez avec d'autres formats de configuration ? Essayez le convertisseur JSON vers YAML et le convertisseur YAML vers JSON, ou nettoyez d'abord votre entrée JSON avec le formateur JSON. Chaque format a sa niche : JSON pour l'échange machine, TOML pour la configuration d'application et d'outillage éditée par des humains, et YAML pour les manifestes d'infrastructure profondément imbriqués. Ce convertisseur vous permet de passer de JSON à TOML sans écrire une seule ligne de code.
// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';
const data = JSON.parse(`{
"package": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "serde": { "version": "1.0" } }
}`);
// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);
console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0" Fonctionnalités clés
Conversion en direct
La sortie TOML se met à jour instantanément au fur et à mesure que vous saisissez ou collez du JSON — aucun bouton Convertir nécessaire. Les grandes entrées (>200 Ko) basculent automatiquement en mode manuel pour garder le navigateur réactif.
Accompagnement pour la table racine
Les documents TOML doivent être une table à la racine. Si le niveau supérieur de votre JSON est un tableau ou un scalaire, l'outil vous indique exactement comment l'envelopper sous une clé — aucune sortie invalide, aucune devinette.
Gestion sûre des null
TOML n'a pas de null. Les clés d'objet à valeur null sont supprimées et listées dans un avertissement ; un null dans un tableau déclenche une erreur précise pointant le chemin. Vous savez toujours ce qui est arrivé à vos données.
Sortie TOML idiomatique
Les objets imbriqués deviennent des [tables], les objets profondément imbriqués deviennent des tables pointées ([tool.ruff]), et les tableaux d'objets deviennent des tableaux de tables ([[section]]) — la forme qu'utilisent les vrais Cargo.toml et pyproject.toml.
Conscience des flottants et des entiers
TOML sépare les entiers des flottants, un flottant comme 1.0 est donc écrit comme l'entier 1. L'outil vous avertit lorsque cette coercition change le type d'une valeur, pour que les surprises d'aller-retour soient visibles.
Confidentialité 100% dans le navigateur
Toute l'analyse s'exécute localement dans votre navigateur. Votre JSON — y compris les identifiants, les jetons et les détails de services internes — n'est jamais téléversé, stocké ni journalisé.
Exemples
Source Cargo.toml
{
"package": {
"name": "my-app",
"version": "1.0.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
} Générez un Cargo.toml de Rust à partir de JSON — les objets imbriqués deviennent des [tables] et les objets en ligne deviennent des tables en ligne, exactement comme Cargo l'attend.
Source pyproject.toml
{
"build-system": {
"requires": ["hatchling"],
"build-backend": "hatchling.build"
},
"project": {
"name": "my-package",
"version": "0.3.1",
"requires-python": ">=3.10",
"dependencies": ["requests>=2.31", "pydantic>=2.0"]
}
} Générez un pyproject.toml PEP 621 à partir de métadonnées de projet JSON — utile lorsqu'un outil ou une API produit du JSON dont vous avez besoin sous forme TOML.
Réglages d'application
{
"title": "My Service",
"debug": false,
"port": 8080,
"database": {
"host": "localhost",
"port": 5432,
"pool_size": 10
},
"features": ["auth", "metrics", "tracing"]
} Convertissez un objet de réglages d'application plat en TOML — les scalaires de premier niveau restent en haut et l'objet database imbriqué devient une table [database].
Serveurs (tableau de tables)
{
"servers": [
{ "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
{ "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
]
} Un tableau d'objets devient un tableau de tables ([[servers]]) en TOML — la façon idiomatique d'exprimer des sections répétées.
Source de config Netlify
{
"build": {
"command": "npm run build",
"publish": "dist",
"environment": { "NODE_VERSION": "20" }
},
"redirects": [
{ "from": "/old", "to": "/new", "status": 301, "force": true }
]
} Transformez une config de déploiement JSON en netlify.toml, avec des tables imbriquées [build] et [build.environment] et un tableau de tables [[redirects]].
Config à structure pointée
{
"tool": {
"ruff": { "line-length": 100, "target-version": "py310" },
"black": { "line-length": 100 }
}
} Les objets JSON profondément imbriqués deviennent des tables TOML pointées comme [tool.ruff] et [tool.black] — la forme qu'attend l'outillage pyproject.toml.
Comment l'utiliser
- 1
Collez votre JSON
Saisissez ou collez votre JSON dans le champ de saisie ci-dessus. Vous pouvez aussi cliquer sur « Charger un exemple » pour essayer une source Cargo.toml, une source pyproject.toml ou un objet de réglages d'application.
- 2
Voyez la sortie TOML en direct
Le TOML apparaît instantanément dans le panneau de sortie. Si votre JSON a un tableau de premier niveau ou des valeurs null, l'outil explique exactement quoi faire au lieu de produire une sortie invalide.
- 3
Copiez ou téléchargez
Cliquez sur Copier pour placer le TOML dans votre presse-papiers, ou sur Télécharger pour l'enregistrer en fichier .toml prêt pour Cargo, Poetry, Hugo, Netlify ou tout outil qui lit du TOML.
Pièges JSON vers TOML courants
Tableau ou scalaire de premier niveau
Les documents TOML doivent être une table (objet) à la racine. Un tableau JSON ou une valeur isolée ne peut pas être un document TOML. Enveloppez-le sous une clé pour le convertir.
[1, 2, 3]
{ "items": [1, 2, 3] } Valeurs null dans les objets
TOML n'a pas de type null, une clé d'objet à valeur null est donc supprimée lors de la conversion. L'outil vous avertit des clés retirées. Si vous devez garder la clé, donnez-lui une valeur réelle ou une chaîne vide.
{ "name": "a", "nickname": null } { "name": "a", "nickname": "" } Null dans un tableau
Un tableau TOML ne peut pas contenir de null ni de vide, un JSON comme [1, null, 3] n'a donc aucune sortie TOML valide. Retirez le null ou remplacez-le par une valeur réelle avant la conversion.
{ "ports": [8001, null, 8003] } { "ports": [8001, 8003] } Syntaxe JSON invalide
L'entrée doit d'abord être du JSON valide. Les virgules finales, les guillemets simples et les clés sans guillemets sont des erreurs courantes copiées de JavaScript qui ne sont pas du JSON valide et doivent être corrigées avant la conversion.
{ 'name': 'a', 'active': true, } { "name": "a", "active": true } Un flottant à fraction nulle devient un entier
TOML écrit un flottant dont la partie fractionnaire est nulle (1.0) comme l'entier 1, changeant son type lors d'un aller-retour. L'outil vous avertit. Si la valeur est conceptuellement un entier, c'est très bien ; si elle doit rester un flottant, TOML ne peut pas préserver cela pour les nombres entiers.
{ "ratio": 1.0 } → ratio = 1 { "ratio": 1.5 } → ratio = 1.5 Mélanger objet et tableau sur la même clé
Une clé JSON doit être systématiquement un objet ou un tableau pour correspondre à une table ou un tableau de tables. Des formes incohérentes à travers un jeu de données peuvent produire un TOML déroutant — normalisez d'abord la structure.
{ "server": { "a": 1 }, "server": [1] } { "server": { "a": 1 }, "servers": [1] } Cas d'usage courants
- Générer un Cargo.toml
- Transformez du JSON structuré — issu d'un outil d'échafaudage, d'une API ou d'un script — en un Cargo.toml de Rust valide, avec des tables [dependencies] imbriquées et des tables en ligne produites automatiquement.
- Générer un pyproject.toml
- Convertissez des métadonnées de projet JSON en un pyproject.toml PEP 621, y compris les tables pointées [tool.*], pour qu'un outillage qui émet du JSON puisse produire une config d'empaquetage Python.
- Config éditable par un humain à partir de JSON
- Transformez les réglages JSON d'une application en un fichier de config TOML lisible que les humains peuvent éditer confortablement, avec des commentaires ajoutés ensuite à la main.
- Génération de config de déploiement
- Produisez netlify.toml, foundry.toml ou des configs de plateforme similaires à partir de JSON, en transformant les objets imbriqués et les tableaux d'objets en les tables et tableaux de tables qu'attendent ces outils.
- Migration de format de configuration
- Déplacez une configuration d'un système fondé sur JSON vers un système fondé sur TOML, en utilisant ce convertisseur comme pont et les avertissements sur les null et le niveau supérieur pour repérer tout ce qui ne se mappe pas.
- Prototypage de structure TOML
- Esquissez une config en JSON — un format que la plupart des développeurs tapent avec aisance — puis convertissez en TOML pour voir la disposition idiomatique en tables et tableaux de tables avant de la valider dans un dépôt.
Détails techniques
- Analyse JSON RFC 8259
- L'entrée JSON est analysée avec le JSON.parse() natif du navigateur, entièrement conforme à la RFC 8259. Avant la sérialisation, l'outil vérifie que la valeur de premier niveau est un objet et recherche les valeurs null pour pouvoir avertir des clés d'objet supprimées ou rejeter un null dans un tableau avec un chemin précis.
- Sortie TOML 1.0.0 via smol-toml
- Le TOML est généré avec la bibliothèque smol-toml, un sérialiseur sans dépendance et entièrement conforme à TOML 1.0.0. Les objets imbriqués deviennent des tables, les objets profondément imbriqués deviennent des tables pointées, et les tableaux d'objets deviennent des tableaux de tables. Les flottants à partie fractionnaire nulle sont écrits comme des entiers selon les règles TOML, avec un avertissement.
- 100% dans le navigateur — aucun téléversement, aucun serveur
- Tout le traitement se déroule dans le moteur JavaScript de votre navigateur. Aucune donnée n'est transmise à aucun moment. Les entrées de plus de 200 Ko passent du mode direct au mode manuel (un clic explicite sur Convertir) pour garder l'interface réactive.
Bonnes pratiques
- Enveloppez les tableaux de premier niveau sous une clé
- Si vos données sont naturellement un tableau JSON, enveloppez-les dans un objet avec une clé descriptive ({ "items": [...] }) avant la conversion. Les documents TOML doivent être une table à la racine, et la clé donne à votre tableau un nom clair dans la sortie.
- Décidez de ce que doivent signifier les null
- Avant la conversion, décidez si un champ null doit disparaître (supprimer la clé) ou porter une valeur. TOML supprimera les null d'objet et rejettera les null de tableau, résoudre ces cas dans votre JSON d'abord donne une sortie prévisible et complète.
- Utilisez des objets imbriqués pour regrouper
- Regroupez les réglages liés dans des objets imbriqués dans votre JSON — ils deviennent des [tables] propres et des tables pointées en TOML, bien plus lisibles qu'une liste plate de clés, à l'image de l'organisation des configs Cargo et pyproject.
- Validez d'abord votre JSON
- Si votre JSON est écrit à la main ou provient d'une source peu fiable, validez-le avec notre formateur JSON pour repérer les virgules finales et les erreurs de guillemets avant de convertir en TOML.
- Ajoutez des commentaires après la conversion
- JSON n'a pas de commentaires, aucun n'est donc reporté. Comme TOML prend en charge les commentaires #, ajoutez de la documentation au TOML généré à la main — l'une des principales raisons de faire passer une config éditée par des humains vers TOML au départ.
Questions fréquentes
Comment convertir du JSON en TOML en ligne ?
Qu'est-ce que le TOML et pourquoi convertir du JSON vers celui-ci ?
Pourquoi le niveau supérieur de mon JSON doit-il être un objet ?
Qu'advient-il des valeurs null lors de la conversion de JSON en TOML ?
Comment les objets et tableaux imbriqués sont-ils convertis en TOML ?
Qu'advient-il des nombres à virgule flottante comme 1.0 ?
Mes données JSON sont-elles envoyées à un serveur ?
Puis-je reconvertir du TOML en JSON ?
Comment convertir du JSON en TOML en ligne de commande ?
Comment convertir du JSON en TOML en Python, Rust ou Node.js ?
Le convertisseur préserve-t-il l'ordre des clés ?
Y a-t-il une limite de taille de fichier pour l'entrée JSON ?
Outils connexes
Voir tous les outils →Décodeur et Encodeur Base64
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.
Convertisseur Base64 en Image
Encodage et formatage
Décodez une chaîne Base64 ou un URI de données en image dans votre navigateur. Aperçu, dimensions et MIME, puis téléchargement en PNG, JPG, GIF, SVG. Sans envoi.
Convertisseur CSV vers JSON
Encodage et formatage
Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.
Convertisseur .env vers JSON
Encodage et formatage
Collez un fichier .env, obtenez du JSON instantanément. Vos mots de passe et clés API ne quittent jamais le navigateur — 100 % privé, sans envoi.
Décodeur d'entités HTML gratuit — Décoder le HTML
Encodage et formatage
Décodez les entités HTML et déséchappez le HTML en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Reconvertit les références nommées, décimales & hex en caractères ; jamais envoyé.
Encodeur d'entités HTML gratuit — Échapper le HTML
Encodage et formatage
Encodez les entités HTML et échappez les caractères spéciaux (< > & " ') en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Sortie nommée, décimale ou hexadécimale ; jamais envoyée.