Convertir un XML en JSON
Un flux XML devient un JSON lisible, selon des conventions annoncées.
Traité sur cet appareil · aucun envoi de fichier
XMLRSSATOMKMLGPXXSD+2Vous pouvez aussi coller (Ctrl+V)Confortable jusqu’à 50 Mo
80 ko à télécharger la première fois, puis conservé sur cet appareil.détails
Moteur : fast-xml-parser.
À quoi sert cette page
Un export d’ERP, un flux RSS, une réponse de service web : le XML est encore partout, et presque tout ce qui le consomme aujourd’hui attend du JSON. La conversion n’est pourtant pas mécanique — un attribut, un élément répété une seule fois, du texte mêlé à des balises n’ont pas d’équivalent évident. Cette page applique des conventions écrites noir sur blanc plutôt que des choix invisibles, et fait le travail dans votre navigateur : un catalogue de prix ou un export client ne part sur aucun serveur.
On dit aussi : convertir xml en json, xml vers json.
Comment faire
- Déposez un ou plusieurs fichiers XML.
- Choisissez le sort des attributs et des éléments répétés.
- Lancez la conversion et téléchargez le fichier .json.
Questions fréquentes
Pourquoi certaines clés commencent-elles par « @ » ?
Parce qu’elles viennent d’attributs XML, et non d’éléments. Le JSON ne fait pas cette distinction : sans préfixe, un attribut « ref » et un élément « ref » du même parent se marcheraient dessus. Vous pouvez aussi demander à ignorer purement et simplement les attributs.
Pourquoi ai-je parfois un objet et parfois un tableau pour la même balise ?
Parce qu’en mode automatique la forme suit le fichier : un article donne un objet, deux articles donnent un tableau. C’est pratique à relire, mais gênant pour un script, qui doit alors gérer les deux cas. L’option « toujours des tableaux » rend le schéma stable, au prix d’un JSON un peu plus verbeux.
Mes accents sortent-ils correctement ?
Oui, y compris quand le fichier les écrit sous forme d’entités numériques : « Rhône » redevient « Rhône ». Les entités nommées propres au HTML (é, ), qui ne font pas partie du XML, sont en revanche laissées telles quelles — les déclarer serait le rôle de la DTD du document.
Que se passe-t-il si mon fichier XML est incomplet ?
Il est refusé, avec la ligne et la colonne du problème. C’est délibéré : la plupart des convertisseurs acceptent un fichier tronqué et rendent un JSON partiel qui a l’air correct. Mieux vaut une erreur immédiate qu’un fichier faux téléchargé sans le savoir.
Les valeurs numériques sont-elles converties ?
Oui par défaut, sauf celles que la conversion abîmerait : une référence « 007 » resterait fausse en devenant 7, et un téléphone « +33612345678 » perdrait son plus. Ces formes restent du texte, et vous pouvez de toute façon désactiver la conversion pour tout garder en chaînes de caractères.
Bon à savoir
- Un attribut devient une clé préfixée « @ » (@ref), le texte d’un élément qui porte aussi des attributs va dans une clé « #texte ». Ce sont des conventions : le JSON n’a pas de place réservée pour les attributs.
- Un élément répété devient un tableau, un élément unique reste un objet. Un fichier où la répétition varie donnera donc un JSON de forme variable : l’option « toujours des tableaux » supprime ce piège.
- Le texte mixte — du texte et des balises au même niveau, comme « Tarifs <em>hors taxes</em> au 5 janvier » — n’est pas fidèlement représentable : les morceaux de texte sont regroupés et leur position par rapport aux balises est perdue.
- Les commentaires, la déclaration <?xml ?> et le DOCTYPE sont écartés : ce ne sont pas des données. Les préfixes d’espace de noms, eux, sont conservés tels quels (« ns:balise » reste « ns:balise »).
- Aucune entité externe n’est résolue et aucune DTD n’est téléchargée : un fichier qui référence une définition distante ne déclenche aucune requête réseau, ici pas plus qu’ailleurs.
- Le fichier est chargé entier en mémoire : au-delà de quelques dizaines de mégaoctets, comptez quelques secondes et un onglet gourmand.
- Un XML mal formé est refusé avec la ligne et la colonne fautives. Il n’est pas réparé : deviner où refermer une balise reviendrait à inventer votre contenu.