XML vers JSON
Convertissez des documents XML en JSON localement dans le navigateur, en mappant éléments et attributs en objets prêts pour les tests d'API ou les migrations de schémas.
Ce que fait l'outil
- Attributs préfixés par @, texte sous #text
- Éléments frères répétés regroupés en tableaux
- Erreurs d'analyse avec leur position
- Aucune installation requise, tout s'exécute dans le navigateur
- Sortie JSON copiable
Collez un document XML, cliquez sur XML vers JSON et récupérez un objet JSON indenté, prêt à copier. La conversion suit une correspondance fixe, détaillée ci-dessous, pour que vous puissiez anticiper la forme du résultat avant d'écrire du code dessus. L'analyse est assurée par quick-xml, un parseur XML écrit en Rust et compilé en WebAssembly : réponses SOAP, factures et exports de données sont convertis dans l'onglet, sans téléversement. Cette page et le guide de conversion XML vers JSON utilisent le même moteur ; le guide se concentre sur les situations où passer au JSON est pertinent.
Comment le XML devient du JSON
Le XML possède des notions absentes du JSON (attributs, texte mixte, balises répétées), et chaque convertisseur doit adopter une convention. Celui-ci applique la convention répandue @ et #text :
- Élément racine : la sortie est un objet avec une seule clé, le nom de la racine.
<commande>...</commande>donne{"commande": {...}}. - Éléments enfants : ils deviennent des clés de l'objet parent.
- Attributs : ils deviennent des clés préfixées par
@.<article id="7">donne"@id": "7". - Éléments ne contenant que du texte : ils deviennent de simples chaînes.
<ville>Lyon</ville>donne"ville": "Lyon". - Texte et attributs ensemble : le texte est placé sous
#text, à côté des clés@. - Frères répétés portant le même nom : ils sont regroupés en tableau. Deux
<article>donnent"article": [{...}, {...}]. - Éléments vides comme
<note/>: ils deviennentnull.
Conséquence à prévoir : un seul <article> donne un objet, deux ou plus donnent un tableau. Si le nombre d'éléments varie d'un document à l'autre, votre code doit accepter les deux formes.
Comment convertir du XML en JSON
- Collez le XML dans le panneau de gauche. La déclaration
<?xml ...?>et les commentaires peuvent rester : ils sont ignorés. - Cliquez sur XML vers JSON.
- Lisez ou copiez le JSON à droite. Si le XML est mal formé, le message d'état donne l'erreur et sa position, par exemple une balise fermante qui ne correspond pas à l'ouvrante.
Limites et cas particuliers
- Toutes les valeurs sont des chaînes.
<qte>42</qte>donne"42", ettruereste la chaîne « true ». Sans schéma, le XML ne porte aucun type, donc rien n'est deviné. - Les sections CDATA ne sont pas reprises. Le contenu de
<![CDATA[...]]>est ignoré, et un élément qui ne contient que du CDATA ressort ànull. Si votre flux enveloppe du HTML dans du CDATA, extrayez-le à part. - Le contenu mixte perd ses espaces. Dans
<p>Bonjour <b>vous</b> là</p>, les morceaux de texte sont accolés sous#textsans les espaces autour de l'élément interne, qui devient sa propre clé. L'outil vise le XML de données, pas le balisage documentaire de type XHTML. - Les espaces de noms sont conservés tels quels. Les noms préfixés le restent (
"soap:Body") et les déclarations apparaissent comme attributs ("@xmlns:soap"). - Les entités sont décodées :
&dans le texte devient&dans la chaîne JSON. - Un seul sens : l'outil convertit du XML en JSON, pas l'inverse.
Usages typiques
- Inspecter une réponse SOAP avant de réécrire une intégration vers une API REST.
- Lire un flux RSS ou Atom, un sitemap ou un fichier de configuration sous forme d'arbre JSON.
- Transformer un export XML d'ERP, de banque ou d'administration (les flux XML restent la norme dans bien des échanges publics) en données directement exploitables par un script JavaScript ou Python.
- Obtenir la forme JSON exacte d'un document pour écrire les types ou le schéma correspondants.
Par rapport aux bibliothèques et à la ligne de commande
Dans du code, xmltodict en Python ou fast-xml-parser en JavaScript réalisent cette conversion avec des options réglables, et yq sait lire le XML en ligne de commande. Ce sont les bons outils pour un traitement automatisé. Cette page sert juste avant : voir à quoi ressemble un document en JSON, sans monter de projet et sans confier un payload de production à un service en ligne.
Confidentialité des documents XML métier
Le XML reste le format des relevés bancaires, des factures électroniques, des échanges de données de santé et de nombreuses API administratives. Ces documents contiennent des noms, des numéros de compte, des adresses et des montants, autant de données personnelles au sens du RGPD. Ici, la conversion s'exécute en WebAssembly dans votre navigateur, sans requête transportant le document : vos données restent sur votre machine.
Foire aux questions
- Mon XML est-il envoyé à un serveur ?
- Non. Le XML est analysé et converti localement dans votre navigateur. Rien n'est transmis ni conservé.
- Pourquoi les attributs sont-ils préfixés par @ ?
- Pour les distinguer des éléments enfants de même nom. Sans préfixe,
<user id="1"><id>2</id></user>produirait deux clésiden conflit. - Pourquoi un élément donne-t-il un objet et un autre un tableau ?
- Les frères répétés sont regroupés en tableau, alors qu'une occurrence unique reste un objet ou une chaîne. Gérez les deux formes dans votre code quand le nombre peut varier.
- Pourquoi mes nombres sont-ils des chaînes ?
- Le texte XML n'a pas de type : chaque valeur est conservée en chaîne. Convertissez les champs numériques dans votre code.
- Que deviennent les CDATA et les commentaires ?
- Ils sont ignorés. Les commentaires ne sont pas des données, et le contenu CDATA n'est pas repris dans le JSON à ce jour.
- Peut-on convertir du JSON en XML ?
- Non, l'outil fonctionne dans un seul sens. Pour les formats de configuration, le convertisseur YAML, JSON et TOML couvre les autres conversions.
Outils connexes : mettez en forme ou minifiez le résultat avec le formateur JSON, ou aplatissez un tableau d'enregistrements en tableur avec le convertisseur JSON vers CSV.