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 & B <co></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.