XML ⇄ JSON Converter

À propos de cet outil

Convertit XML et JSON dans les deux sens avec une logique privilégiant les allers-retours fidèles.
Par défaut, l'option Convertir les éléments répétés en tableau est désactivée et ne s'applique qu'à partir de deux occurrences.
Lorsque la racine JSON est un tableau, la représentation XML utilise <root><item>…</item>…</root> et la conversion XML→JSON reconstitue ce tableau. Tout le traitement se déroule dans le navigateur ; aucune donnée n'est transmise.

Conversion XML ⇄ JSON

Mode d'emploi

  1. Collez du XML ou du JSON dans la zone de gauche.
  2. Cliquez sur XML → JSON ou JSON → XML.
  3. Ajustez l'indentation, les clés d'attribut/texte, la conservation des espaces de noms et le traitement des tableaux au besoin.
  4. Utilisez les boutons Validate pour vérifier la syntaxe.

Exemples

XML → JSON :

<user id="42">
  <name>Taro</name>
  <role>admin</role>
  <role>editor</role>
</user>
{
  "user": {
    "@id": "42",
    "name": "Taro",
    "role": ["admin", "editor"]
  }
}

Compléments

  • Les attributs sont exprimés sous la forme [préfixe d'attribut][nom] (par défaut @id).
  • Le contenu textuel utilise [clé de texte] (par défaut #text).
  • Les éléments du même nom restent scalaires par défaut et ne deviennent des tableaux qu'à partir de deux valeurs.
  • Si la racine JSON est un tableau, l'XML l'exprime sous <root><item>…</item>…</root> (le nom d'élément est configurable).
  • Les éléments vides sans texte ni attribut sont exportés comme objets vides {}.

Points d'attention (limites d'équivalence)

Le convertisseur vise la fidélité structurelle « JSON d'origine → XML → JSON retourné », mais certains cas restent hors de portée :

JSON d'origine :


    "urls": [
             "admin.microsoft.com"
            ],
    "expressRoute": false,
    "id": 160,

JSON après aller-retour :


    "urls": "admin.microsoft.com",
    "expressRoute": "false",
    "id": "160",

Cela provient des différences de gestion des types entre XML et JSON ; des annotations XML peuvent atténuer ces cas, mais l'équivalence parfaite reste difficile.