Aller au contenu principal
CuteJSON
↑↓ Naviguer Enter Selectionner Esc Fermer

Comment convertir JSON en XML avec un mapping déclaré

Publie 2 min de lecture Par Akash Kinkar Pandey

Il n'y a pas un seul moyen correct de transformer JSON en XML. Les deux formats ne modélisent pas les données de la même manière : XML a des attributs, du contenu mixte et pas de type tableau natif, aucun desquels JSON n'a d'équivalent. Cet outil choisit un mapping et le déclare sur la page, plutôt que de prétendre qu'il en existe un naturel.

Utilisation du convertisseur JSON vers XML

Choisissez une direction et, en écrivant du XML, un nom pour l'élément racine, car JSON n'a rien qui nomme un document comme le fait un élément racine XML. Convertir

{"items":[{"name":"A & B <co>"},{"name":"C"}],"note":null}

avec la racine définie sur catalog produit :

<catalog>
  <items>
    <name>A &amp; B &lt;co&gt;</name>
  </items>
  <items>
    <name>C</name>
  </items>
  <note/>
</catalog>

Un membre objet devient un élément enfant, un tableau devient des éléments frères répétés qui partagent la clé du tableau comme nom, et les caractères qui ne sont pas légaux dans du texte XML, comme & et <, sont échappés.

Attributs, texte et valeurs vides

Une clé prefixée par @ devient un attribut XML en écriture, et une clé #text devient du texte à côté des éléments enfants. Ni @ ni # n'est un caractère légal pour commencer un nom d'élément XML, donc une clé JSON ne peut jamais entrer en collision avec l'une ou l'autre convention par accident.

null, un objet vide, un tableau vide et une chaîne vide deviennent tous un élément vide, car XML a exactement une forme pour rien et ne peut pas les distinguer. Lire <note/> en retour retourne donc null pour les quatre, ce que la page indique clairement plutôt que de vous laisser découvrir.

Pourquoi le lecteur retourne chaque valeur comme une chaîne

XML n'enregistre aucune information de type. Un nombre dans un document XML n'est que des chiffres en ce qui concerne le format, et deviner qu'il devrait devenir un nombre JSON est exactement le genre de devinette qui transforme un code postal en un entier sans son zéro initial. La relecture reste sans perte en refusant de deviner.

Ce que signifie un nom d'élément répété au retour

Un nom d'élément répété sous le même parent devient un tableau JSON au retour, et un nom de membre qui n'est pas un nom légal d'élément XML arrête la conversion et nomme la clé problématique, plutôt que de la modifier silencieusement en quelque chose qui ressemble à une balise valide.

Retour aux articles