Convertisseur JSON et XML
S’exécute dans votre navigateur ; rien n’est envoyé
Convertissez du JSON en XML ou du XML en JSON, avec des règles claires pour les attributs, les éléments répétés et les espaces de noms.
Input · JSON
Output · XML
Converted XML appears here as you type.
JSON et XML dans les API
Le JSON et le XML décrivent tous deux des données structurées sous forme de texte. Le JSON a des objets, des tableaux et des valeurs typées comme les nombres et les booléens. Le XML a des éléments imbriqués, des attributs et du texte, et tout est du texte sauf si un schéma dit le contraire. Les services web SOAP, les flux RSS et Atom et beaucoup de systèmes bancaires, de paiement et d’administrations utilisent encore le XML, donc les applications construites sur le JSON doivent souvent traduire.
Les deux formats ne se correspondent pas exactement : ce convertisseur suit donc une convention courante et réversible. Un élément devient une clé et son texte la valeur. Les attributs deviennent des clés qui commencent par @, comme @id. Quand un élément a des attributs ou des éléments enfants en plus du texte, le texte va dans #text. Un élément qui se répète devient un tableau. Les préfixes d’espace de noms sont conservés tels qu’écrits : <soap:Body> devient "soap:Body" et la déclaration devient "@xmlns:soap".
Le XML n’a pas de types, donc par défaut tout reste une chaîne : <zip>007</zip> donne "007" et <id>7</id> donne "7". Activez Numbers pour lire comme valeurs typées celles qui sont écrites exactement comme des nombres JSON, ainsi que true et false (007 reste du texte). Dans l’autre sens, l’élément racine vient de l’unique clé de premier niveau du JSON, ou de Root name quand il y en a plusieurs.
Comment utiliser cet outil
- 1Choisissez JSON → XML ou XML → JSON dans la barre d’outils. Collez vos données dans le panneau Input, déposez-y un fichier ou appuyez sur Ctrl+O pour en ouvrir un (jusqu’à 5 Mo).
- 2Le résultat s’affiche dans le panneau Output et se met à jour pendant la saisie. Les notes au-dessus de la sortie indiquent ce que la conversion a dû changer, comme des clés renommées ou des commentaires laissés de côté.
- 3Pour XML → JSON, choisissez Always arrays pour que chaque élément enfant devienne un tableau (plus simple à lire depuis le code) et Numbers pour convertir les nombres et les booléens. Pour JSON → XML, réglez Root name et indiquez si la sortie commence par une déclaration XML.
- 4Si l’entrée est invalide, le panneau de sortie donne la ligne et la colonne ; appuyez sur F8 pour placer le curseur sur le problème.
- 5Swap (Shift+Alt+S) place la sortie dans l’entrée et inverse le sens, pour vérifier l’aller-retour. Copiez le résultat ou téléchargez-le avec Ctrl+S.
Dépannage
- </item> attendu pour fermer l’élément ouvert à la ligne 3
- Les balises doivent se fermer dans l’ordre inverse de leur ouverture, avec le même nom et la même casse. Vérifiez que la balise fermante de l’élément cité dans le message n’est ni absente ni mal orthographiée.
- Un
&isolé doit s’écrire& - Dans le texte et les attributs XML,
&commence une entité. Écrivez&pour une esperluette,<pour<, ou entourez le texte de<![CDATA[ ... ]]>. - Entité inconnue
- Seules les cinq entités XML (
<>&"') et les références de caractère comme sont définies. vient du HTML ; utilisez à la place. - Un second élément racine : le XML n’en a qu’un
- Un document XML doit avoir un seul élément de premier niveau. Regroupez les éléments dans un élément parent.
- Clés renommées dans la sortie XML
- Les noms XML ne peuvent contenir ni espaces ni la plupart des signes de ponctuation, ni commencer par un chiffre :
first namedevient donc<first_name>et2fadevient<_2fa>. La note liste chaque renommage ; modifiez les clés dans le JSON si le XML doit utiliser d’autres noms.
Questions fréquentes
Comment les tableaux JSON sont-ils convertis en XML ?
Chaque entrée devient un élément portant le nom de la clé du tableau, répété une fois par entrée : "tag": ["a", "b"] devient <tag>a</tag><tag>b</tag>. Un tableau de premier niveau est placé dans l’élément racine, avec un <item> par entrée. Un tableau vide ne produit aucun élément et ne peut donc pas revenir lors du retour vers le JSON ; les notes le signalent.
Que deviennent les commentaires, les CDATA et les instructions de traitement ?
Les sections CDATA deviennent du texte ordinaire. Les commentaires et les instructions de traitement n’ont pas leur place en JSON et sont laissés de côté, avec une note. Le DOCTYPE est ignoré, et les entités qu’il déclare ne sont pas développées.
Et le contenu mixte, comme `<p>Hello <b>world</b></p>` ?
Les éléments enfants deviennent des clés comme d’habitude et le texte qui les entoure est regroupé dans #text. Le JSON ne peut pas enregistrer où se trouvait le texte entre les éléments, donc cet ordre est perdu ; le convertisseur ajoute une note quand cela arrive.
La conversion se fait-elle sur un serveur ?
Non. Le XML est analysé et généré dans votre navigateur, et rien de ce que vous collez ou ouvrez n’est envoyé. Pour survivre à un rechargement, ce que vous collez est conservé dans le session storage de cet onglet jusqu’à ce que vous l’effaciez ou fermiez l’onglet. Copy link place l’entrée dans le lien après le #, une partie que les navigateurs n’envoient jamais à un serveur, mais toute personne à qui vous donnez le lien peut la lire.