Convertisseur JSON vers XML

Collez du JSON à gauche, obtenez du XML bien formé à droite. Les clés avec préfixe @_ deviennent des attributs. Sans upload.

  1. Collez du JSON dans la zone de texte de gauche.
  2. Cliquez sur « Convertir en XML ». Les clés JSON deviennent des éléments ; les @_clés deviennent des attributs.
  3. Copiez ou téléchargez le XML formaté.
  4. Encadrez vos données avec une seule clé racine — XML exige un élément de niveau supérieur.
Que fait-il ?

Convertit un objet JSON en XML selon la convention de fast-xml-parser. Les propriétés d'objet deviennent des éléments enfants ; les propriétés préfixées de `@_` deviennent des attributs sur le parent ; les tableaux deviennent des éléments frères répétés portant le même nom de balise. Nombres, booléens et chaînes sont émis comme contenu textuel. La sortie est indentée pour la lisibilité.

Exemple

Entrée JSON :

{
  "root": {
    "@_version": 1,
    "name": "Ada",
    "tags": ["math", "logic"]
  }
}

Sortie XML :

<root version="1">
  <name>Ada</name>
  <tags>math</tags>
  <tags>logic</tags>
</root>

Pièges courants JSON vers XML

XML est plus strict que JSON sur la structure. Les motifs ci-dessous couvrent la plupart des sorties surprenantes.

  • Pas de racine unique. XML exige exactement un élément racine. Les objets JSON avec plusieurs clés de niveau supérieur produisent plusieurs racines, ce qui est du XML invalide. Encadrez votre entrée d'une clé unique : `{"root": {"a":1, "b":2}}`.
  • Tableau au niveau supérieur. Un tableau JSON `[{"a":1},{"a":2}]` n'a pas de nom d'élément racine à utiliser. Encadrez-le : `{"items": [{"a":1},{"a":2}]}`. Chaque entrée de tableau devient alors un élément `<items>`.
  • Noms d'éléments avec espaces ou symboles. Les noms d'éléments XML ne peuvent contenir d'espaces, commencer par un chiffre, ou contenir `:`, `/`, `<`, etc. Nettoyez les clés JSON avant conversion — remplacez les espaces par `_`, préfixez les chiffres d'une lettre.
  • Attributs vs. éléments. Une clé JSON `id` devient un élément enfant `<id>1</id>`. Pour en faire un attribut (`<user id="1">`), préfixez la clé de `@_` : `{"user":{"@_id":1}}`. Le préfixe est retiré à la sortie.
  • Valeurs null. JSON `null` devient un élément vide (`<x/>`). Si vous souhaitez l'omettre entièrement, retirez les valeurs null de votre JSON avant conversion.
  • Caractères spéciaux dans le texte. XML échappe `<`, `>`, `&`, `"`, et `\\\'` automatiquement. Votre chaîne JSON `"<b>hi</b>"` devient le texte `&lt;b&gt;hi&lt;/b&gt;`, pas des éléments imbriqués. Utilisez une structure JSON intermédiaire si vous voulez une vraie imbrication.
Questions fréquentes

Comment obtenir une déclaration XML `<?xml version="1.0"?>` ?

Préfixez-la vous-même à la sortie — le convertisseur ne l'émet pas. Pour XML UTF-8, la déclaration est techniquement optionnelle mais souvent incluse : `<?xml version="1.0" encoding="UTF-8"?>` suivi de votre XML converti.

Les tableaux JSON sont-ils préservés comme éléments répétés ?

Oui. `{"tags":["a","b"]}` devient `<tags>a</tags><tags>b</tags>` — deux frères avec la même balise, ce qui est la représentation XML standard d'une valeur répétée.

Puis-je obtenir des tableaux imbriqués style JSON en XML ?

Pas directement. XML n'a pas de concept natif de tableau ; seulement des frères répétés. Les tableaux imbriqués en JSON deviennent une structure XML plus plate où le contexte détermine le regroupement. Un aller-retour XML → JSON → XML via cet outil préserve le sous-ensemble aller-retournable.

Comment sont gérées les dates ?

JSON n'a pas de type Date — les dates sont typiquement déjà des chaînes ISO 8601. Celles-ci deviennent du contenu textuel d'élément sans changement. Si votre XML en aval attend un format particulier, assurez-vous que le JSON utilise ce format.

Mon JSON est-il téléchargé ?

Non. Tout s'exécute dans votre navigateur — votre entrée est parsée et convertie par le JavaScript de cette page et n'est jamais envoyée à un serveur.

L'aller-retour JSON → XML → JSON préservera-t-il mes données ?

Pour les données structurées typiques avec la convention d'attribut @_, oui — sémantiquement. Certains cas limites (texte + éléments enfants mélangés, ordre d'attributs vs. ordre d'éléments) peuvent se normaliser. Si l'équivalence exacte octet par octet est importante, ne faites pas d'aller-retour via XML.