100 % local — vos données ne quittent jamais votre navigateur

JSON en XML — du XML valide, prêt à coller

Convertissez du JSON en XML. Une seule racine, des noms de balises rendus légaux et l’indentation au choix — prêt pour un corps SOAP ou une config.

Instantané Privé Zéro cookie
Indentation

Entrée JSON

Sortie XML

Ce que fait cet outil

Les clés deviennent des éléments, les valeurs leur contenu :

{ "utilisateur": { "nom": "Ada", "port": 8080, "actif": true } }
<utilisateur>
  <nom>Ada</nom>
  <port>8080</port>
  <actif>true</actif>
</utilisateur>

Un document à plusieurs clés racines est emballé dans <root>, XML n’admettant qu’un seul élément racine. Un tableau racine devient des éléments <item> répétés à l’intérieur.

Les types cessent d’exister ici

Regardez à nouveau cette sortie. 8080 et true sont désormais du texte, et rien dans le document ne dit qu’ils aient jamais été autre chose.

Ce n’est pas une limite de la conversion : c’est ce qu’est XML. Un document XML porte une structure et du texte. Les types viennent d’un schéma — XSD, DTD, RELAX NG — qui vit hors du document, et que cette conversion n’a aucun moyen d’inventer.

La conséquence pratique mérite d’être dite franchement : reconvertir vous rendra des chaînes. {"port": 8080} revient en {"port": "8080"}, sauf si ce qui le lit en décide autrement — c’est-à-dire devine, et se trompe sur un numéro de version comme 1.10 ou un code postal comme 01234.

S’il vous faut un aller-retour qui préserve les types, XML n’est pas la bonne destination. S’il vous faut du XML, prévoyez que le retour sera lossy.

Les clés sont réparées, pas émises cassées

Un nom d’élément XML ne peut pas contenir d’espace ni commencer par un chiffre :

cléélément
user name<user_name>
2nd<_2nd>

Et quand deux clés se réparent en un même nom, la seconde devient user_name_1. Les fondre ferait disparaître une valeur en silence, ce que cet outil s’emploie avant tout à éviter.

Les attributs, et l’aller-retour

Une clé écrite "@_id" devient un attribut, "#text" devient le texte de l’élément :

{ "utilisateur": { "@_id": "1", "#text": "Ada" } }
<utilisateur id="1">Ada</utilisateur>

C’est la convention qu’émet le sens XML vers JSON : un document converti depuis XML se reconvertit dans la même forme — les types devenus chaînes, comme ci-dessus.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi mon nombre est-il revenu en chaîne ?
Parce que XML n’a pas de types. `{"port": 8080}` devient `<port>8080</port>`, et un document XML ne peut pas dire si c’est un nombre ou le texte « 8080 ». Reconvertir vous rend une chaîne, sauf si quelque chose — un schéma, ou un convertisseur qui devine — en décide autrement. L’information est perdue à l’étape XML, pas au retour.
Qu’advient-il d’une clé qui n’est pas un nom d’élément valide ?
Elle est réparée : `user name` devient `<user_name>`, `2nd` devient `<_2nd>`. Et si deux clés se réparent en un même nom, la seconde reçoit un suffixe — `user_name_1` — plutôt que d’écraser la première : une valeur qui disparaît sans un mot est pire qu’un nom disgracieux.
Puis-je produire des attributs plutôt que des éléments ?
Oui. Une clé nommée `"@_id"` devient l’attribut `id`, et une clé `"#text"` devient le texte de l’élément. C’est la convention que produit le sens XML vers JSON : un document passé par là se reconvertit dans la même forme.

Convertisseurs associés