Comment convertir du JSON en XML (avec attributs)
Le JSON est ce que la plupart des services web, applis et outils modernes envoient et enregistrent. Mais beaucoup de systèmes attendent encore du XML : flux de produits, imports de boutique et de comptabilité, anciens logiciels de gestion, services SOAP et de nombreux fichiers de configuration. Convertir le JSON vous évite de construire le XML à la main.
Ce guide montre ce que devient chaque partie du JSON en XML et comment convertir avec le convertisseur JSON en XML gratuit, attributs, listes et noms interdits en XML compris.
Comment le JSON devient du XML
- Chaque clé d’un objet devient un élément de ce nom, et sa valeur le texte de l’élément.
- Une liste (tableau) répète son élément une fois par entrée.
nulldevient un élément vide comme<subtitle/>;trueetfalsesont écrits en texte.- Tout se trouve dans un seul élément racine, car un document XML doit en avoir exactement un.
- Les caractères qui ont un sens en XML sont échappés :
&devient&et<devient<. Les nombres sont copiés tels quels :24.50garde son zéro.
Voici le catalogue d’une petite boutique en JSON :
{
"name": "Corner Books",
"books": [
{
"@id": "bk101",
"title": "XML & JSON for Everyone",
"price": { "@currency": "EUR", "#text": 29.95 },
"tags": ["data", "web"]
},
{
"@id": "bk102",
"title": "Daten für alle",
"price": { "@currency": "EUR", "#text": 24.50 },
"in stock": false,
"subtitle": null,
"tags": []
}
]
}et le XML obtenu, avec catalog comme élément racine :
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<name>Corner Books</name>
<books id="bk101">
<title>XML & JSON for Everyone</title>
<price currency="EUR">29.95</price>
<tags>data</tags>
<tags>web</tags>
</books>
<books id="bk102">
<title>Daten für alle</title>
<price currency="EUR">24.50</price>
<in_stock>false</in_stock>
<subtitle/>
</books>
</catalog>Les clés qui commencent par @ sont devenues des attributs (id="bk101"), et #text le texte de <price>, à côté de son attribut currency. La clé in stock ne peut pas être un nom XML à cause de l’espace : elle est devenue in_stock, et la liste vide tags n’a rien produit. Des notes sous le résultat vous signalent les deux.
Astuce : le nom de la liste sert pour chaque entrée, donc "books" donne <books> pour chaque livre. Pour obtenir l’habituel <book>, nommez la liste "book" dans votre JSON.
Convertir du JSON en XML
- Ouvrez le convertisseur JSON en XML et collez votre JSON dans Entrée JSON, cliquez sur Ouvrir un fichier ou déposez un fichier .json dans le cadre. Exemple charge un exemple. Une erreur dans le JSON s’affiche avec sa ligne et sa colonne.
- Saisissez un nom dans Élément racine, comme
catalog,productsou celui qu’attend le système visé. - Choisissez les autres options, expliquées plus bas.
- Cliquez sur Convertir en XML, puis téléchargez le fichier .xml ou copiez-le.
Les options
- Élément racine. Le nom de l’élément qui entoure tout. Il s’appelle
roottant que vous ne le changez pas. - Indentation. 2 espaces, 4 espaces ou une tabulation, pour que le XML se lise bien. Cela ne change pas les données.
- Tableaux. Répéter l’élément (par défaut) donne
<tags>data</tags><tags>web</tags>, comme dans l’exemple. Envelopper les entrées garde la liste comme un seul élément et place chaque entrée dans un<item>; une liste vide reste alors un élément vide :
<catalog>
<name>Corner Books</name>
<books>
<item id="bk101">
<title>XML & JSON for Everyone</title>
<price currency="EUR">29.95</price>
<tags>
<item>data</item>
<item>web</item>
</tags>
</item>
<item id="bk102">
…
<tags/>
</item>
</books>
</catalog>- Les clés @ deviennent des attributs. Activée par défaut. Désactivez-la et
@idet#textdeviennent des éléments ordinaires, avec un_devant car les noms XML ne peuvent pas commencer par@ou#:
<books>
<_id>bk101</_id>
<title>XML & JSON for Everyone</title>
<price>
<_currency>EUR</_currency>
<_text>29.95</_text>
</price>
…- Déclaration XML. La première ligne,
<?xml version="1.0" encoding="UTF-8"?>. Gardez-la pour les fichiers ; retirez-la quand le XML est collé dans un document plus grand.
Quand le JSON est une liste
Si votre JSON commence par [, il n’y a pas de clé pour nommer les enregistrements : chacun devient un <item> dans l’élément racine :
[
{ "name": "Ada", "city": "London" },
{ "name": "Alan", "city": "Manchester" }
]<?xml version="1.0" encoding="UTF-8"?>
<people>
<item>
<name>Ada</name>
<city>London</city>
</item>
<item>
<name>Alan</name>
<city>Manchester</city>
</item>
</people>Pour obtenir <person>, placez d’abord la liste dans un objet : { "person": [ … ] }.
Les noms que le XML n’accepte pas
Les clés JSON peuvent être n’importe quoi, pas les noms XML. Ils ne peuvent contenir ni espaces ni la plupart des signes, ni commencer par un chiffre ou par xml. Le convertisseur corrige ces clés pour vous : les autres caractères deviennent _, et un nom qui commence mal reçoit un _ devant, donc 2024 devient _2024. Les deux-points sont aussi remplacés, pour que le résultat ne contienne jamais d’espace de noms par accident. Les caractères de contrôle que le XML n’accepte pas du tout sont retirés du texte, et une note en donne le nombre.
Autres outils
- XML en JSON : le chemin inverse. Voir comment convertir du XML en JSON.
- Validateur XML : vérifiez le résultat avec le schéma XSD du système dans lequel vous importez.
- Formateur JSON : trouvez et corrigez d’abord les erreurs du JSON.
Mon JSON est-il envoyé ?
Non. La conversion se fait dans votre navigateur : vos données ne quittent jamais votre appareil. Notre serveur enregistre seulement qu’une conversion a eu lieu, pour la limite quotidienne.
Questions fréquentes
En reconvertissant en JSON, est-ce que je retrouve le même fichier ?
Presque, mais pas toujours à l’identique. Le XML n’a ni nombres, ni true ou false, ni listes : tout est du texte, et une liste d’une seule entrée ressemble à un élément seul. Gardez le JSON d’origine si vous en avez besoin.
Puis-je ajouter un espace de noms ?
Pas dans le convertisseur : les deux-points des clés sont remplacés pour garder un XML valide. Ajoutez l’espace de noms à l’élément racine ensuite, par exemple <catalog xmlns="https://example.com/catalog">.
Pourquoi une clé manque-t-elle dans le XML ?
C’était sans doute une liste vide, qui ne produit aucun élément avec Répéter l’élément. Choisissez Envelopper les entrées pour la garder comme élément vide.
Autres articles
- Comment convertir du XML en CSV (et l’ouvrir dans Excel)
- Comment convertir du HTML en Markdown (avec aide-mémoire)
- Comment convertir PNG en PDF (captures, logos et scans)
- Comment convertir WebP en PNG (quand une image ne s’ouvre pas)
- Comment faire un tableau en Markdown (syntaxe, alignement et générateur gratuit)