JSON vers XML

Collez un document JSON et obtenez l’équivalent XML avec le nom de l’élément racine que vous choisissez, une stratégie cohérente pour les tableaux (éléments répétés ou un wrapper), une déclaration XML optionnelle et une indentation soignée. Utile lorsqu’un système hérité exige XML et que vos données en amont sont au format JSON.

Comment convertir JSON en XML

  1. 1

    Collez JSON

    Objet ou tableau au niveau supérieur. Vous donnerez un nom à l'élément racine.

  2. 2

    Nommez la racine

    XML nécessite un seul élément racine. Par défaut, c'est `<root>` ; donnez-lui un nom significatif comme `<users>` ou `<response>`.

  3. 3

    Choisissez la stratégie de tableau

    "Éléments répétés" (chaque élément du tableau devient un frère `<item>`) ou "wrapper" (le tableau va à l'intérieur d'un élément wrapper nommé).

  4. 4

    Copiez le XML

    Déclaration XML optionnelle, indentation appropriée et valeurs échappées pour `<`, `>`, `&` et les guillemets.

Exemple : éléments répétés

Entrée:

{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }

Sortie:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <users>
    <name>Alice</name>
  </users>
  <users>
    <name>Bob</name>
  </users>
</root>

Exemple : wrapper de tableau

Même entrée avec la stratégie “envelopper les tableaux dans <item>” :

<root>
  <users>
    <item>
      <name>Alice</name>
    </item>
    <item>
      <name>Bob</name>
    </item>
  </users>
</root>

Mappage des types

JSON XML
chaîne contenu texte, échappé en entités
entier / décimal contenu texte (sans annotation de type XML)
booléen true / false en tant que texte
null élément vide (<foo/>) ou omis
tableau éléments répétés ou wrapper + éléments
objet élément imbriqué avec éléments enfants

Attributs vs éléments

XML distingue les attributs (<user id="1">) des éléments enfants (<user><id>1</id></user>). Le convertisseur utilise par défaut des éléments, ils sont sans perte pour l’aller-retour (round-trip). Si votre XML en aval nécessite des attributs, utilisez une convention de préfixe de clé :

  • La clé JSON @id devient un attribut XML id="..." sur l’élément parent.
  • La clé JSON #text devient le contenu texte de l’élément parent.

Ces conventions proviennent des mappages BadgerFish et Parker, les deux normes les plus courantes de JSON à XML.

Règles d’échappement

  • < -> &lt;
  • > -> &gt;
  • & -> &amp;
  • " -> &quot; (dans les valeurs d’attribut)
  • ' -> &apos; (optionnel)
  • Les octets en UTF-8 sont préservés, déclarés dans le prologue XML.

Erreurs courantes

  • Tableau JSON au niveau racine. XML a besoin d’un seul élément racine. Le convertisseur enveloppe un tableau dans <root> (ou quel que soit le nom que vous choisissez).
  • Clés numériques. JSON {"1": "a"} est légal ; les noms d’éléments XML ne peuvent pas commencer par un chiffre. Le convertisseur préfixe les chiffres avec un underscore (_1) ou vous permet de définir un mappage personnalisé.
  • Tableaux mixtes. [1, "deux", { "x": true }] n’a pas de mappage propre. Cela signifie généralement que le JSON nécessite une normalisation avant la conversion.
  • Documents énormes. XML est verbeux, un JSON de 10 Mo peut devenir un XML de 20-30 Mo. Envisagez une conversion en streaming pour des charges très volumineuses.

Questions fréquentes

XML nécessite une seule racine selon la spécification. Si votre JSON est un tableau ou a plusieurs clés de niveau supérieur, le convertisseur enveloppe tout dans un élément racine que vous pouvez nommer (par défaut <root>).

Oui. Utilisez la convention de préfixe @ dans vos clés JSON (par exemple "@id": 1) et ces clés deviennent des attributs. D’autres clés restent des éléments enfants. Cela correspond au mappage BadgerFish.

Deux stratégies : éléments frères répétés (chaque élément obtient la clé parent comme son étiquette), ou un wrapper avec des éléments <item> à l’intérieur. Choisissez celle qui correspond au schéma XML que vous ciblez.

Non. Le convertisseur émet la déclaration XML (<?xml version="1.0"?>) mais pas de DOCTYPE. Pour un XML qui nécessite une référence DTD ou XSD, ajoutez-la manuellement après la conversion.

Outils similaires

Outil disponible dans d’autres langues