Outils / Texte et données / Convertisseur JSON vers TOML
Côté client

Convertisseur JSON vers TOML

Transformez un objet JSON ou une réponse d'API en TOML propre et facile à éditer à la main pour Cargo.toml, pyproject.toml ou une config Hugo et Netlify, en local dans le navigateur sans rien envoyer.

Ce que fait l'outil

  • Verrouillé sur JSON en entrée, TOML en sortie : collez et convertissez
  • Mappe les objets JSON en tables TOML et les tableaux d'objets en [[tables]]
  • Omet les clés JSON null, car TOML n'a pas de type null
  • S'exécute en local, une config avec des secrets ne quitte jamais l'onglet

Convertissez du JSON en TOML directement dans votre navigateur, sans rien envoyer vers un serveur. La plupart des gens viennent ici pour transformer une config JSON existante, un package.json ou une réponse d'API en TOML qu'ils vont ensuite éditer à la main, le plus souvent un Cargo.toml, un pyproject.toml ou une config Hugo, Netlify ou autre site statique. Vous voulez un TOML propre, valide et prêt à copier-coller plutôt qu'un téléchargement, et comme cette config contient souvent des clés d'API, des chaînes de connexion ou des noms d'hôtes internes, la conversion se déroule entièrement sur votre appareil.

Ce que cette conversion fait réellement (et ce qu'elle ne fait PAS)

JSON vers TOML est un rétrécissement à sens unique de la richesse de format, pas un aller-retour symétrique. Chaque valeur JSON se mappe proprement en TOML : les objets deviennent des tables TOML écrites [table], les tableaux d'objets deviennent des tableaux de tables écrits avec la syntaxe à double crochet [[table]] (une construction sans équivalent visuel en JSON), et les chaînes, nombres et booléens sont repris directement. Le modèle de données survit, mais TOML peut exprimer des choses que JSON ne peut pas, donc le retour est avec perte.

Le plus gros piège de justesse est null. JSON a une valeur null ; TOML n'a aucun type null. Le comportement correct, et ce que fait cet outil, est d'omettre entièrement la clé plutôt que d'émettre une chaîne vide ou un substitut, ce que certains convertisseurs font silencieusement et qui casse l'analyse en aval. Soyez vigilant : si une clé disparaît de votre sortie, c'est qu'elle valait null dans la source.

La profondeur est l'autre point à anticiper. TOML est à l'aise autour de deux à trois niveaux d'imbrication ; au-delà, vous obtenez de longs en-têtes de table [a.b.c.d.e], et l'indice de profondeur fondé sur l'indentation du JSON disparaît, car le chemin pointé de l'en-tête devient le seul indicateur de profondeur. C'est une transformation de texte et de config, donc il n'y a pas de variation de taille de fichier ni d'axe de perte de qualité à surveiller. L'axe pertinent ici est la fidélité structurelle : les null, la profondeur d'imbrication et le typage des dates et heures. TOML a des types date et heure de première classe, contrairement à JSON, donc toute chaîne de date JSON reste une simple chaîne. TOML ne peut pas non plus exprimer d'ancres ni de références, donc une valeur qui se répète dans votre JSON est réécrite intégralement à chaque fois. Les commentaires ne peuvent pas être repris, car JSON n'en a pas, mais ajouter ensuite des commentaires à la sortie TOML à la main est généralement tout l'intérêt de la conversion.

Quand choisir JSON vers TOML

Choisissez ce sens quand la destination est un fichier de config édité par un humain et que vous voulez la lisibilité de sections nommées avec des affectations par signe égal. TOML brille pour une configuration peu profonde et bien nommée comme un Cargo.toml ou un pyproject.toml. Si vos données sont profondément imbriquées, qu'il s'agit d'une charge utile d'API ou de données destinées à l'échange machine, gardez-les en JSON ou envisagez plutôt de convertir JSON en YAML, car YAML tolère plus gracieusement les imbrications profondes. Si vous devez un jour faire l'inverse, le convertisseur TOML vers JSON gère le sens retour.

Comment convertir

  1. Ouvrez cette page, préréglée sur JSON en entrée et TOML en sortie.
  2. Collez votre JSON dans le panneau source (un package.json, une réponse d'API ou n'importe quelle config JSON).
  3. Cliquez sur convertir pour produire le TOML.
  4. Vérifiez le résultat pour les clés null omises et tout en-tête de table profond.
  5. Copiez le TOML dans votre presse-papiers ou téléchargez-le sous forme de fichier.

Aucun envoi. Tout s'exécute sur votre appareil.

La conversion est effectuée par un module Rust compilé en WebAssembly qui s'exécute dans l'onglet de votre navigateur. Il y a zéro requête réseau pour la conversion elle-même, elle fonctionne hors ligne une fois la page chargée, et il n'y a rien à supprimer après coup, car rien n'a jamais été envoyé. Vous pouvez le vérifier vous-même : ouvrez les outils de développement de votre navigateur, surveillez l'onglet Réseau, et convertissez, aucune requête ne fait sortir vos données. Cela compte ici, car les fichiers de config contiennent couramment des secrets et des identifiants comme des clés d'API, des chaînes de connexion à une base de données et des noms d'hôtes internes, et ceux-ci ne devraient jamais être collés dans un outil côté serveur susceptible de les journaliser.

Aucune limite

Convertissez autant de JSON que vous voulez. Aucun plafond de taille de fichier, aucune limite de nombre de documents, aucun filigrane, aucune inscription et aucune publicité.

Foire aux questions

Qu'advient-il des valeurs null du JSON lors de la conversion vers TOML ?
TOML n'a pas de type null, donc un null JSON n'a aucun équivalent direct. Cet outil omet entièrement la clé, ce qui est le comportement TOML correct, plutôt que d'émettre une chaîne vide ou un substitut qui casserait l'analyse en aval. Si une clé disparaît de votre sortie, c'est qu'elle valait null dans la source.
Puis-je convertir du JSON profondément imbriqué en TOML ?
Oui, mais TOML est le plus lisible autour de deux à trois niveaux d'imbrication. Au-delà, la sortie utilise de longs en-têtes de table pointés comme [a.b.c.d], et l'indice de profondeur par indentation du JSON est remplacé par ce chemin pointé, qui peut devenir difficile à lire. Pour des structures très profondes, JSON ou YAML reste généralement plus propre.
La conversion JSON vers TOML perd-elle des données ?
Les valeurs de données JSON se mappent toutes en TOML, donc aucune valeur n'est silencieusement écartée sauf les null, intentionnellement omis parce que TOML ne peut pas les représenter. La conversion est à sens unique en richesse : TOML peut exprimer des types et des constructions que JSON ne peut pas, donc reconvertir en arrière n'est pas un aller-retour garanti.
Comment les tableaux d'objets JSON sont-ils représentés en TOML ?
Un tableau d'objets devient un tableau de tables TOML, écrit avec des en-têtes à double crochet comme [[table]] répétés une fois par élément. C'est une construction propre à TOML sans équivalent visuel direct en JSON, donc la structure de sortie aura un aspect différent du tableau entre crochets de votre source.
Puis-je convertir un package.json en Cargo.toml ou pyproject.toml ?
Vous pouvez convertir la structure JSON en TOML valide, ce qui vous donne une longueur d'avance, mais un package.json ne partage pas les noms de champs de Cargo.toml ou pyproject.toml. Traitez la sortie comme un échafaudage que vous renommez et éditez ensuite à la main vers les clés attendues du manifeste cible.
Mon JSON est-il envoyé vers un serveur lorsque je le convertis ?
Non. La conversion s'exécute entièrement dans votre navigateur via un module Rust vers WebAssembly, sans aucune requête réseau emportant vos données. Vous pouvez le confirmer dans l'onglet Réseau des outils de développement de votre navigateur pendant que vous convertissez.
Comment convertir du JSON en TOML sans envoyer mes données ?
Cette page est exactement ce flux de travail : collez votre JSON, convertissez, et copiez le TOML, le tout en local. Comme rien ne quitte l'onglet, c'est sûr pour une config qui contient des clés d'API, des chaînes de connexion ou des noms d'hôtes internes.
Puis-je convertir du JSON en TOML hors ligne ?
Oui. Une fois la page entièrement chargée, le convertisseur WebAssembly fonctionne sans aucune connexion réseau. Vous pouvez vous déconnecter et continuer à convertir, puisque la logique réside déjà dans votre navigateur.
Les chaînes de date JSON sont-elles converties en types datetime TOML ?
Non. TOML a des types date et heure de première classe, contrairement à JSON, donc une date écrite sous forme de chaîne JSON reste une simple chaîne dans la sortie TOML. Le convertisseur ne peut pas déduire de façon fiable qu'une chaîne était censée être une date et heure, donc vous la saisiriez à la main si vous avez besoin d'un véritable datetime TOML.
Pourquoi convertir du JSON en TOML plutôt que garder du JSON ?
TOML est conçu pour la configuration éditée par un humain, avec des sections nommées et des affectations par signe égal qui se lisent plus clairement que des accolades imbriquées pour une config peu profonde. La raison habituelle de convertir est de produire un fichier de config que vous allez ensuite commenter et maintenir à la main, ce que JSON ne permet pas puisqu'il n'a pas de commentaires.

Outils associés : convertissez dans l'autre sens avec le convertisseur TOML vers JSON, passez à JSON vers YAML pour des données profondément imbriquées. Découvrez tous les utilitaires de texte et de données sur le hub des outils de texte.