ToolDeck

Convertisseur JSON vers TOML

Convertir JSON au format TOML

Essayer un exemple

Entrée JSON

Sortie TOML

Fonctionne localement · Sûr pour coller des secrets
La sortie TOML apparaîtra ici…

Qu'est-ce que la conversion JSON vers TOML ?

La conversion JSON vers TOML transforme des données du format JavaScript Object Notation vers Tom's Obvious Minimal Language. JSON utilise des accolades, des crochets et des clés entre guillemets pour représenter des données structurées. TOML utilise une syntaxe clé-valeur plate avec des en-têtes de section (appelés tables) qui se lit comme un fichier INI, mais avec un typage strict. TOML a été conçu spécifiquement pour les fichiers de configuration où la lisibilité humaine prime sur l'échange machine.

TOML est devenu le format de configuration par défaut pour Rust (Cargo.toml), le packaging Python (pyproject.toml), les sites statiques Hugo, les paramètres de déploiement Netlify et de nombreux outils CLI. Lorsque vos données source existent en JSON — depuis une réponse d'API, une configuration exportée ou un fichier généré — et que votre système cible attend du TOML, vous avez besoin d'un convertisseur qui mappe les objets JSON en tables TOML, les tableaux JSON en tableaux TOML, et préserve chaque type de données avec précision.

Convertir JSON vers TOML en ligne est le moyen le plus rapide de générer du TOML valide à partir de données JSON existantes. La conversion gère automatiquement la correspondance des types : les chaînes JSON deviennent des chaînes TOML, les nombres JSON deviennent des entiers ou des flottants TOML, les booléens JSON correspondent directement, et les objets JSON deviennent des tables TOML. La seule exception est null — TOML n'a pas de type null, donc les valeurs null sont soit omises soit converties en chaînes vides selon le convertisseur.

Pourquoi utiliser ce convertisseur JSON vers TOML ?

TOML est ce qu'attendent les fichiers de configuration ; JSON est ce que produisent les API et les outils. Ce convertisseur comble l'écart pour que vous puissiez déplacer des données entre les deux formats sans réécriture manuelle.

Conversion instantanée
Collez du JSON et obtenez immédiatement une sortie TOML. La conversion s'exécute au fil de la frappe, sans allers-retours serveur ni téléchargements de fichiers.
🔒
Traitement axé sur la confidentialité
Toute la conversion s'effectue localement dans votre navigateur. Les secrets de configuration, les clés d'API et les identifiants de base de données présents dans votre JSON ne quittent jamais votre appareil.
🔀
Support complet des structures
Les objets imbriqués deviennent des tables TOML, les tableaux d'objets deviennent des tableaux de tables ([[table]]), et les tableaux à types mixtes sont traités correctement.
📋
Sans compte requis
Ouvrez la page et convertissez. Pas d'inscription, pas d'extension à installer, pas de dépendance CLI. Fonctionne sur n'importe quel appareil avec un navigateur moderne.

Cas d'utilisation JSON vers TOML

Configuration de projets Rust
Cargo.toml définit les dépendances, les fonctionnalités et les paramètres de build pour les projets Rust. Convertissez des listes de dépendances JSON ou des configurations générées directement au format Cargo.toml.
Packaging Python (pyproject.toml)
PEP 518 et PEP 621 ont normalisé pyproject.toml comme fichier de métadonnées de projet Python. Convertissez les métadonnées de package JSON existantes vers la structure TOML requise.
Configuration de sites statiques
Hugo, Netlify et d'autres générateurs de sites statiques utilisent des fichiers de configuration TOML. Lors d'une migration depuis une configuration JSON ou d'une génération programmatique de config, convertissez la sortie en TOML.
DevOps et infrastructure
Des outils comme Terraform (pour certains fournisseurs), Consul et divers environnements de conteneurs acceptent la configuration TOML. Convertissez les paramètres exportés en JSON vers TOML sans ressaisir les valeurs.
Réponse d'API vers fichier de configuration
Les API REST renvoient du JSON. Lorsque vous devez utiliser ces données comme configuration TOML — par exemple des feature flags ou des paramètres d'environnement — collez la réponse et obtenez du TOML valide.
Apprentissage de la syntaxe TOML
Les étudiants et les développeurs qui découvrent TOML peuvent coller des structures JSON familières et observer la sortie TOML équivalente.

Comparaison JSON vs TOML

JSON et TOML se recoupent en termes de capacités, mais diffèrent par leur syntaxe, leur support des types et leur usage prévu. Ce tableau montre les différences qui affectent la conversion.

FonctionnalitéJSONTOML
SyntaxBraces, brackets, colons, commasKey = value, [table], [[array]]
CommentsNot allowed (RFC 8259)Supported with #
Data typesstring, number, boolean, null, object, arraystring, integer, float, boolean, datetime, array, table
null supportNative (null)No null type — omit the key or use empty string
Nested objectsUnlimited nesting depthDotted keys or [table.subtable] headers
Arrays of objectsArray of objects with [][[array-of-tables]] syntax
ReadabilityModerate — bracket-heavy at depthHigh — flat key-value pairs
SpecRFC 8259 / ECMA-404TOML v1.0.0 (toml.io)

Pièges de la conversion TOML

TOML a des règles qui diffèrent de JSON de façon à affecter le résultat de la conversion. Ces quatre problèmes causent le plus de confusion.

Pas de type null en TOML
JSON prend en charge null comme valeur de première classe. TOML n'a pas de type null du tout. Lors de la conversion, les valeurs null doivent être gérées — soit en omettant entièrement la clé, en utilisant une chaîne vide, ou en choisissant une valeur sentinelle. Cela signifie qu'un aller-retour de JSON vers TOML puis retour peut ne pas reproduire les valeurs null d'origine.
Les tableaux hétérogènes sont limités
Les tableaux JSON peuvent mélanger librement les types : [1, "deux", true]. TOML v1.0.0 exige que tous les éléments d'un tableau soient du même type. Si votre JSON contient des tableaux à types mixtes, le convertisseur doit soit convertir tous les éléments en chaînes, soit lever une erreur. Vérifiez votre sortie lorsque les tableaux source contiennent des types mixtes.
Les objets profondément imbriqués deviennent verbeux
JSON gère naturellement l'imbrication profonde avec des accolades emboîtées. TOML utilise des clés pointées ou des en-têtes chaînés [table.sous-table.clé], qui peuvent devenir longs pour des structures profondément imbriquées. La sortie est valide mais moins compacte que l'original JSON.
Restrictions sur les noms de clés
Les clés simples TOML ne peuvent contenir que des lettres ASCII, des chiffres, des tirets et des underscores. Les clés JSON peuvent être n'importe quelle chaîne. Si votre JSON a des clés avec des espaces, des points ou des caractères spéciaux, ces clés doivent être entre guillemets dans la sortie TOML. La plupart des convertisseurs gèrent cela automatiquement, mais vérifiez la sortie si vos clés contiennent des caractères inhabituels.

Exemples de code

Convertir JSON vers TOML par programme nécessite une bibliothèque de sérialisation TOML dans la plupart des langages. Les bibliothèques standard analysent JSON ; la sortie TOML requiert un paquet dédié.

JavaScript (Node.js)
import { stringify } from '@iarna/toml'

const json = '{"title":"My App","database":{"host":"localhost","port":5432}}'
const obj = JSON.parse(json)
const toml = stringify(obj)
console.log(toml)
// → title = "My App"
// →
// → [database]
// → host = "localhost"
// → port = 5432
Python
import json
import tomli_w  # pip install tomli_w

json_str = '{"title": "My App", "database": {"host": "localhost", "port": 5432}}'
data = json.loads(json_str)
toml_str = tomli_w.dumps(data)
print(toml_str)
# → title = "My App"
# →
# → [database]
# → host = "localhost"
# → port = 5432
Go
package main

import (
    "encoding/json"
    "fmt"
    "github.com/pelletier/go-toml/v2"
)

func main() {
    jsonStr := `{"title":"My App","database":{"host":"localhost","port":5432}}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    tomlBytes, _ := toml.Marshal(data)
    fmt.Println(string(tomlBytes))
    // → title = 'My App'
    // →
    // → [database]
    // → host = 'localhost'
    // → port = 5432
}
CLI (yj / remarshal)
# Using yj (https://github.com/sclevine/yj)
echo '{"title":"My App","port":3000}' | yj -jt
# → title = "My App"
# → port = 3000

# Using remarshal (pip install remarshal)
echo '{"title":"My App","port":3000}' | remarshal -if json -of toml
# → title = "My App"
# → port = 3000

Questions fréquentes

La conversion JSON vers TOML est-elle sans perte ?
Pour la plupart des données, oui. Les chaînes, entiers, flottants, booléens, objets et tableaux ont tous des équivalents TOML directs. Les deux exceptions sont null (TOML n'a pas de type null, donc les valeurs null sont omises ou remplacées) et les tableaux à types mixtes (TOML exige des éléments de tableau de type uniforme). Si votre JSON évite ces deux cas, la conversion est entièrement sans perte.
Que devient une valeur null JSON en TOML ?
TOML n'a pas de type null. Les convertisseurs omettent généralement les clés avec des valeurs null dans la sortie, car il n'existe aucun moyen de représenter « la clé existe mais n'a pas de valeur » en TOML. Certains convertisseurs vous permettent de choisir d'utiliser une chaîne vide à la place. Vérifiez votre sortie si les valeurs null ont une signification dans vos données.
TOML peut-il représenter des objets JSON imbriqués ?
Oui. Les objets JSON deviennent des tables TOML. Un objet imbriqué comme {"database": {"host": "localhost"}} se convertit en un en-tête de table [database] avec host = "localhost" en dessous. L'imbrication arbitraire est supportée via des clés pointées ou des en-têtes de tables imbriquées.
Pourquoi Rust et Python utilisent-ils TOML plutôt que JSON ?
TOML prend en charge les commentaires, essentiels pour documenter les choix de configuration. Il produit également une sortie plus lisible pour les paramètres clé-valeur plats, qui constituent l'essentiel des métadonnées de package. JSON interdit les commentaires (RFC 8259), ce qui le rend plus difficile à maintenir comme format de configuration édité par des humains.
Comment TOML gère-t-il les dates et heures ?
TOML dispose de types datetime natifs : datetime avec offset (2024-01-15T10:30:00Z), datetime local, date locale et heure locale. JSON n'a pas de type date — les dates sont stockées sous forme de chaînes. Lors de la conversion de JSON vers TOML, les chaînes ressemblant à des dates restent des chaînes, sauf si le convertisseur détecte et convertit explicitement les formats ISO 8601.
Est-il sûr de coller des secrets et des identifiants dans cet outil ?
Oui. La conversion s'exécute entièrement dans votre navigateur en JavaScript. Aucune donnée n'est envoyée à un serveur. Vous pouvez le vérifier en ouvrant les outils développeur de votre navigateur, en passant à l'onglet Réseau, et en confirmant qu'aucune requête n'est effectuée pendant la conversion.
Quelle version TOML suit la sortie ?
La sortie suit TOML v1.0.0, publiée en janvier 2021 et qui est la spécification stable actuelle. Cette version exige des tableaux à types uniformes, prend en charge les clés pointées et définit le format datetime. La spécification est maintenue sur toml.io.