Comment convertir du XML en JSON
- Collez du XML, déposez un fichier
.xmlsur l’éditeur ou chargez-le depuis une URL. Le JSON s’affiche pendant la saisie. - Ajustez le préfixe des attributs et la clé du texte, puis choisissez d’utiliser toujours des tableaux, de convertir les nombres et les booléens ou d’ignorer les préfixes d’espace de noms.
- Copiez le JSON ou téléchargez-le en fichier
.json.
Correspondance entre XML et JSON
| XML | JSON |
|---|---|
<name>Ada</name> | "name": "Ada" |
<price>9.90</price> | "price": 9.90 – chiffres conservés à l’identique |
<item id="7">Pen</item> | "item": {"@id": 7, "#text": "Pen"} |
<tag>a</tag><tag>b</tag> | "tag": ["a", "b"] |
<note/> | "note": null |
<![CDATA[a < b]]> | le texte "a < b" |
<soap:Body> avec Ignorer les préfixes d’espace de noms | "Body" |
Pourquoi activer « Toujours utiliser des tableaux » ?
Un élément qui apparaît une seule fois devient une valeur simple, mais s’il apparaît deux fois, il devient un tableau. Le code qui lit le JSON doit alors gérer les deux formes – un bug classique lorsqu’une liste ne contient parfois qu’un seul élément. Cochez Toujours utiliser des tableaux pour les éléments enfants pour obtenir des tableaux partout : la structure devient prévisible, au prix de quelques crochets supplémentaires.
Convertir XML en JSON dans votre code
- Python :
xmltodict.parse(text)(paquet xmltodict) - JavaScript :
new XMLParser({ ignoreAttributes: false }).parse(text)(paquet fast-xml-parser) - C# :
JsonConvert.SerializeXmlNode(doc)(Newtonsoft.Json) - Ligne de commande :
yq -p xml -o json file.xml
Questions fréquentes
La conversion est-elle sans perte ?
Les noms d’éléments, les attributs et le texte sont conservés, et les nombres gardent exactement leurs chiffres. Les commentaires, les instructions de traitement et la position du texte entre les éléments enfants (contenu mixte) ne peuvent pas être représentés en JSON.
Puis-je reconvertir du JSON en XML ?
Oui, avec le convertisseur JSON en XML de notre site frère JSON Formatter, qui utilise les mêmes conventions @ et #text.
Que deviennent les espaces de noms ?
Par défaut, les noms préfixés comme soap:Body sont conservés comme clés, et les déclarations xmlns apparaissent comme des attributs. Cochez Ignorer les préfixes d’espace de noms pour obtenir des noms simples comme Body, sans les déclarations.
Pourquoi une valeur est-elle une chaîne et non un nombre ?
Des valeurs comme 007 ou 1,000 ne sont pas de simples nombres décimaux : elles restent donc des chaînes pour éviter toute perte de données. Décochez Convertir les nombres et true/false pour conserver toutes les valeurs sous forme de chaînes.