XML vers JSON

Convertisseur en ligne gratuit de XML vers JSON basé sur le DOMParser natif du navigateur. Les attributs XML sont mappés directement aux champs, les éléments répétés fusionnés en arrays, le texte va au champ value. Sortie JSON ou YAML avec prettyPrint et autoréparation d'erreurs XML, 100% dans le navigateur.

Recommandations connexes

À propos de JSON vers XML : convertir les données XML en objets JSON standard automatiquement

JSON vers XML est le processus de conversion de données au format XML (messages SOAP, flux RSS, fichiers de configuration) en objets JSON. XML est le format traditionnel pour les systèmes d'entreprise, les SOAP Web Services, les fichiers de configuration et les documents Office, tandis que JSON est la norme de facto pour les API web modernes, JavaScript et les bases de données NoSQL. La conversion de XML en JSON pour le frontend moderne ou les microservices est un besoin courant, et cet outil automatise ce processus.

Le cœur de l'outil est l'utilisation du DOMParser natif du navigateur pour analyser le XML et parcourir automatiquement l'arborescence DOM pour produire un objet JSON. DOMParser est l'analyseur XML intégré du navigateur, suit la norme W3C DOM et prend en charge toutes les fonctionnalités XML 1.0, y compris les espaces de noms, CDATA, les commentaires et les attributs.

Les règles de mappage sont intuitives : chaque élément XML devient un objet JSON, les attributs deviennent des champs d'objet directement (sans préfixe @), le texte va au champ value, et les éléments frères répétés sont fusionnés en arrays. Par exemple, <bookstore><book id="1"><title>Great Gatsby</title></book><book id="2"><title>Brief History</title></book></bookstore> devient {bookstore: {book: [{id: "1", title: {value: "Great Gatsby"}}, {id: "2", title: {value: "Brief History"}}]}}.

Le choix du mappage direct sans préfixe est une décision de conception clé. De nombreux outils utilisent @attribute, #text et d'autres préfixes spéciaux pour distinguer les attributs du texte. Le mappage direct rend le JSON plus proche des modèles de données métier réels.

La fusion d'éléments répétés est un autre élément clé. XML n'a pas de concept natif d'array, nécessitant des éléments répétés pour représenter des listes. L'outil détecte et fusionne automatiquement les éléments frères en arrays.

La sortie à double format (JSON + YAML) est différenciante. YAML est largement utilisé dans les configurations Kubernetes, Docker Compose, Ansible, GitHub Actions. L'outil inclut un convertisseur YAML simple qui prend en charge l'indentation standard à 2 espaces, le préfixe de liste - et la syntaxe clé:valeur.

L'auto-réparation d'erreurs XML (tryFixXML) améliore la tolérance aux pannes. Le XML du monde réel manque souvent de la déclaration XML ou utilise des balises auto-fermantes de style HTML. L'outil ajoute automatiquement la déclaration et complète les balises.

Le format et la compression XML (formatXML/compressXML) s'appuient sur la bibliothèque xml-formatter. Le mode prettyPrint produit un XML lisible ; le mode compress produit un XML compact adapté à la transmission réseau.

La conversion en temps réel est pratique. L'outil convertit 500ms après l'arrêt de la saisie ; combinée aux six raccourcis clavier (macOS ⇧⌘+F/C/T/O/D/K), les utilisateurs peuvent rapidement effectuer les opérations courantes sans clic de souris.

Le traitement purement côté client est l'architecture centrale. Toute l'analyse XML, le parcours DOM, la sérialisation JSON et la conversion YAML s'exécutent en JavaScript du navigateur. DOMParser est fourni nativement par le navigateur, et xml-formatter est un package npm léger (moins de 30 Ko). Les données XML d'origine ne sont jamais envoyées à un serveur.

Cas d'utilisation

  • Convertir les réponses XML des passerelles de paiement, ERP ou CRM API héritées en JSON pour les frontends modernes ou les backends Node.js.
  • Analyser les flux RSS / Atom en JSON pour les afficher dans les frontends web, les agréger dans des lecteurs de flux unifiés ou les importer dans des bases de données.
  • Lire les fichiers de configuration XML des applications Java (web.xml, applicationContext.xml) et les convertir en JSON pour les requêtes jq ou l'importation dans d'autres outils.
  • Convertir les réponses XML SOAP 1.1/1.2 en JSON et les traiter avec des bibliothèques Node.js comme jsonwebtoken ou lodash.
  • Analyser les pom.xml Maven, build.xml Ant et scripts de build similaires en JSON pour la visualisation des métadonnées du projet ou l'analyse des dépendances.
  • Convertir les flux RSS, Sitemap XML, sources d'abonnement Atom en format JSON pour le stockage dans des bases de données modernes comme Elasticsearch ou MongoDB.
  • Convertir les formats XML standard de l'industrie (HL7, ISO 20022) de la santé ou de la finance en JSON pour les microservices modernes.
  • Convertir les fichiers XML liés au SEO (sitemap.xml, robots.xml) de Google Merchant Center ou Sitemap.org en JSON pour les robots d'exploration ou les outils d'analyse.

Comment utiliser

  1. Collez votre XML dans l'éditeur de gauche, cliquez sur Télécharger pour sélectionner un fichier .xml/.txt, ou cliquez sur Échantillon pour charger l'exemple intégré de librairie.
  2. L'outil convertit automatiquement 500ms après l'arrêt de la saisie. Visualisez le JSON ou YAML converti à droite avec le surlignage de syntaxe CodeMirror.
  3. Cliquez sur les boutons JSON / YAML dans la barre d'outils de droite pour changer le format de sortie en temps réel. Vous pouvez également utiliser les boutons Formater (⇧⌘+F) ou Compresser (⇧⌘+C) pour ajuster le format de l'entrée XML.
  4. Cliquez sur Copier pour mettre le JSON/YAML dans le presse-papiers, ou cliquez sur Télécharger pour l'enregistrer comme fichier avec l'extension correcte (output.json / output.yaml / output.xml).
  5. Pour corriger les erreurs de syntaxe XML, cliquez sur le bouton Réparer à côté du message d'erreur. L'outil appelle tryFixXML pour ajouter la déclaration XML et compléter les balises auto-fermantes.
  6. Collez le JSON dans votre code cible (définition d'interface TypeScript, type de réponse API, etc.) ou importez-le dans votre service backend pour traitement ultérieur.

Fonctionnalités

  • Analyse DOM intelligente : analyse le XML avec le DOMParser natif du navigateur et parcourt automatiquement l'arborescence des nœuds pour produire un objet JSON standard, sans dépendances.
  • Mappage direct des attributs : les attributs XML deviennent des champs d'objet JSON réguliers sans préfixe @.
  • Arrays d'éléments répétés : les éléments frères avec le même nom de balise sont fusionnés en arrays JSON ({book: [{...}, {...}]}).
  • Extraction des nœuds de texte : le contenu textuel de l'élément est stocké dans un champ value.
  • Sortie à double format : bascule en un clic entre JSON (prettyPrint à 2 espaces) et YAML (indentation à 2 espaces, préfixe de liste -) pour différents cas d'usage.
  • Auto-réparation d'erreurs XML : tryFixXML intégré ajoute les déclarations XML manquantes et complète les balises auto-fermantes.
  • Format et compression XML : utilise la bibliothèque xml-formatter pour prendre en charge la sortie prettyPrint et minify (indentation à 2 espaces ou sans espace).
  • Conversion automatique en temps réel : convertit 500ms après l'arrêt de la saisie, sans clic manuel.
  • Surlignage double JSON/XML : le côté gauche utilise le surlignage de syntaxe XML de CodeMirror ; le côté droit bascule entre le surlignage JSON ou YAML.
  • Système complet de raccourcis : six raccourcis courants (formater/compresser/convertir/télécharger/enregistrer/effacer) pour macOS et Windows/Linux.
  • Copier et télécharger : copie dans le presse-papiers en un clic, ou télécharge au format output.json/output.yaml/output.xml (extension auto-sélectionnée par le format).
  • 100% dans le navigateur : toute l'analyse XML, le parcours DOM et la sérialisation JSON se font en JavaScript côté client ; le XML d'origine ne quitte jamais votre appareil, et le DOMParser est fourni nativement par le navigateur.

FAQ

Comment convertir XML en format JSON ?

Collez votre XML dans l'éditeur de gauche et l'outil utilise le DOMParser natif du navigateur pour l'analyser, puis parcourt automatiquement l'arborescence DOM pour construire un objet JSON standard. Le nœud racine est encapsulé dans { [tagName]: {...} }, les attributs sont mappés directement aux champs (sans préfixe @), le texte de l'élément va au champ value, et les éléments frères répétés avec le même nom de balise sont fusionnés en array. La conversion s'exécute 500ms après l'arrêt de la saisie.

Comment les attributs XML et les nœuds de texte sont-ils mappés ?

L'outil utilise un mappage intuitif : les attributs XML deviennent des champs d'objet JSON réguliers (par ex. <book id="1"> devient {id: "1", ...} sans préfixe @), et le contenu textuel de l'élément va au champ value (par ex. <title>Great Gatsby</title> devient {value: "Great Gatsby"}). Lorsqu'un élément a à la fois des attributs et du texte, les deux sont stockés comme frères dans le même objet.

Les éléments XML répétés sont-ils automatiquement convertis en arrays JSON ?

Oui. L'outil détecte automatiquement plusieurs éléments frères avec le même nom de balise (par ex. trois éléments <book> sous <bookstore>) et les fusionne en array JSON. Par exemple, <bookstore><book>...</book><book>...</book></bookstore> devient {bookstore: {book: [{...}, {...}]}}.

Comment les nœuds de texte pur sont-ils gérés ?

Lorsqu'un élément XML n'a pas d'attributs et seulement du contenu textuel, l'outil retourne le texte directement sous forme de chaîne (par ex. <name>Alice</name> devient "Alice"). Lorsque l'élément a à la fois des attributs et du texte, les attributs et le texte sont stockés comme frères dans le même objet ({attr: "...", value: "..."}).

L'outil peut-il gérer du XML mal formé (balises de fermeture manquantes) ?

Oui. La fonction de réparation tryFixXML intégrée ajoute automatiquement la déclaration XML manquante (<?xml version="1.0" encoding="UTF-8"?>) et complète le slash final pour les balises auto-fermantes comme br, hr et img. Cela améliore considérablement la compatibilité avec les systèmes hérités et les API tierces non standard.

Quels types de fichiers XML sont pris en charge ?

L'outil prend en charge les fichiers .xml et .txt (encodage UTF-8). Cliquez sur le bouton Télécharger pour sélectionner un fichier local ; l'outil le lit via l'API FileReader native du navigateur sans le télécharger sur un serveur. Après le téléchargement, le contenu est automatiquement rempli dans la zone de saisie et déclenche la conversion.

Peut-il générer à la fois JSON et YAML ?

Oui. L'outil prend en charge la sortie JSON et YAML. Cliquez sur le bouton bascule JSON/YAML dans la barre d'outils de droite pour changer de format en temps réel. JSON est généré avec prettyPrint à 2 espaces ; YAML utilise l'indentation standard à 2 espaces, le préfixe de liste - et la syntaxe clé:valeur.

Quel est le nom du fichier téléchargé ?

L'extension est choisie automatiquement en fonction du format de sortie actuel : output.json pour JSON, output.yaml pour YAML, et output.xml (le format d'origine) lorsqu'il y a une entrée mais pas de conversion. Tous les fichiers sont encodés en UTF-8 et peuvent être lus directement par leurs analyseurs de format respectifs.

Quels raccourcis clavier sont disponibles ?

L'outil prend en charge ces raccourcis : sur macOS, ⇧⌘+F pour formater, ⇧⌘+C pour compresser, ⇧⌘+T pour convertir, ⇧⌘+O pour télécharger, ⇧⌘+D pour enregistrer, ⇧⌘+K pour effacer ; sur Windows/Linux, utilisez Ctrl au lieu de ⌘. Six raccourcis couvrent le flux de travail complet.

Les espaces de noms XML sont-ils pris en charge ?

Oui. L'outil utilise DOMParser pour analyser le XML, qui prend en charge nativement les espaces de noms (xmlns). Les préfixes d'espace de noms sont conservés dans le nom de l'élément dans le JSON, par ex. <svg:circle> devient {svg:circle: {...}}. Pour accéder à des éléments entre espaces de noms, identifiez-les par le préfixe d'espace de noms dans l'analyseur JSON.

Les sections CDATA sont-elles prises en charge ?

Oui. Le contenu des sections CDATA (<![CDATA[...]]>) est automatiquement fusionné dans le textContent de l'élément par le DOMParser, et l'outil l'extrait dans le champ value comme du texte normal.

Quelle taille de fichier d'entrée est prise en charge ?

Il n'y a pas de limite stricte ; la limite pratique est la mémoire du navigateur. Le XML jusqu'à 1-2 Mo fonctionne sans problème ; les fichiers plus volumineux peuvent ralentir en raison de l'empreinte mémoire plus importante de DOMParser.

Dépannage

Erreur d'analyse JSON 'unclosed token' - que faire ?

La cause est généralement des balises de fermeture XML manquantes, des guillemets d'attribut non appariés ou des caractères spéciaux sans échappement. Cliquez sur le bouton Réparer à côté de l'erreur pour appeler tryFixXML, qui ajoute automatiquement la déclaration XML et complète les balises auto-fermantes. Si cela échoue toujours, vérifiez manuellement la structure XML ou utilisez document.documentElement.outerHTML dans les outils de développement du navigateur.

L'ordre des attributs dans JSON ne correspond pas au XML source ?

La norme JSON ne garantit pas l'ordre des attributs ; l'outil mappe les attributs dans l'ordre du code source. Si votre activité est sensible à l'ordre, reconstruisez le JSON en tant que tableau ordonné à l'aide de toPairs de lodash ou d'outils similaires. La plupart des moteurs JavaScript (V8, SpiderMonkey) préservent l'ordre d'insertion des clés de chaîne.

Un seul élément avec le même nom de balise ne devient pas un tableau, comment gérer ?

L'outil ne convertit en tableau que lorsqu'il détecte plusieurs éléments frères avec le même nom de balise. S'il n'y a qu'un seul élément, l'outil le garde comme objet unique. Pour forcer la conversion en tableau (même avec un seul élément), enveloppez avec castArray de lodash après la conversion ou appliquez la validation JSON Schema pour forcer les tableaux.

Comment conserver les caractères spéciaux dans les attributs XML (comme <, &) ?

DOMParser déséchappe automatiquement les valeurs des attributs ; l'outil conserve le contenu déséchappé. Si le XML d'origine a &lt;, la valeur JSON convertie est <. C'est le comportement XML standard. Si vous devez conserver la forme d'origine avec échappement, utilisez un tokenizer XML personnalisé au lieu de DOMParser.

Pourquoi la sortie YAML n'a-t-elle pas d'informations de type ?

YAML prend en charge les types nativement (12 est number, true est boolean, null est null), mais le convertisseur YAML simple de l'outil sérialise toutes les valeurs en chaînes. Pour préserver les types, utilisez une bibliothèque YAML mature comme js-yaml, ou appliquez la validation JSON Schema côté analyseur.

Comment les instructions de traitement (PI) XML sont-elles gérées ?

DOMParser préserve les instructions de traitement XML (par ex. <?xml-stylesheet ...?>) en tant que nœuds ProcessingInstruction dans document.firstChild. L'outil ne parcourt actuellement que les nœuds Element, les instructions de traitement sont donc ignorées. Pour les préserver, extrayez manuellement document.firstChild.nodeValue.

Avec quoi ouvrir le fichier .json téléchargé ?

Le fichier output.json téléchargé est un fichier JSON standard encodé en UTF-8. Vous pouvez l'ouvrir avec n'importe quel éditeur de texte (VS Code, Sublime, Notepad++) ou outil JSON spécialisé (jq, JSDoc).

Glossaire

JSON (JavaScript Object Notation)
Format léger d'échange de données basé sur la syntaxe d'objets JavaScript, mais indépendant de tout langage de programmation. Prend en charge six types de base : objet ({}), array ([]), string, number, boolean et null.
XML (eXtensible Markup Language)
Langage de balisage extensible défini par le W3C en 1998. Utilise des balises pour décrire les données et prend en charge les espaces de noms, la validation de schémas et les transformations XSLT.
DOMParser
API native du navigateur (norme W3C DOM) qui analyse les chaînes XML ou HTML en une arborescence DOM. Tous les navigateurs modernes l'ont intégré, aucune bibliothèque tierce n'est nécessaire.
xml-formatter
Bibliothèque JavaScript légère (moins de 30 Ko) pour formater (prettyPrint) et compresser (minify) des documents XML.
Mappage d'attributs
Comment les attributs d'éléments XML sont mappés aux champs d'objets JSON. L'outil utilise une approche directe : <book id="1"> devient {id: "1"}, sans préfixe @.
Fusion d'éléments répétés
Les éléments XML frères avec le même nom de balise (comme plusieurs <item>) sont fusionnés en array JSON.
Champ value
Convention de l'outil pour le contenu textuel de l'élément XML. Le texte va dans un champ value.
YAML (YAML Ain't Markup Language)
Format de sérialisation convivial, largement utilisé dans les fichiers de configuration Kubernetes, Docker Compose, Ansible, GitHub Actions.
SOAP (Simple Object Access Protocol)
Protocole de communication de services web basé sur XML. Les messages SOAP sont encapsulés dans une enveloppe SOAP (espace de noms XML) et contiennent un en-tête et un corps (charge utile XML).
Flux RSS / Atom
Formats de syndication de contenu basés sur XML. RSS 2.0 organise le contenu en <rss><channel><item>, Atom utilise <feed><entry>.
Espace de noms XML
Mécanisme pour éviter les conflits de noms d'éléments en utilisant l'attribut xmlns, sous la forme xmlns:prefix="uri".
Section CDATA
Syntaxe XML spéciale <![CDATA[...]]> pour incorporer du texte avec des caractères spéciaux (comme <, >, &) sans échappement.
tryFixXML
Fonction de réparation XML intégrée qui ajoute automatiquement les déclarations XML manquantes et complète le slash final pour les balises auto-fermantes comme br, hr et img.
prettyPrint
Mode de sortie de la bibliothèque xml-formatter qui ajoute automatiquement l'indentation et les sauts de ligne pour améliorer la lisibilité.

Règles de mappage des éléments XML aux champs JSON

Règles de conversion de l'outil basées sur DOMParser :

Structure XMLExemple XMLSortie JSONRègle de mappage
element with attrs<book id="1" category="fiction"/>{"id": "1", "category": "fiction"}Attributs mappés directement aux champs
element with text<title>Great Gatsby</title>{"value": "Great Gatsby"}Contenu textuel dans le champ value
attrs + text<price currency="USD">12.99</price>{"currency": "USD", "value": "12.99"}Attributs et texte sont frères
nested elements<book><title>Gatsby</title></book>{"title": {"value": "Gatsby"}}Éléments enfants deviennent des champs
repeated elements<books><book/><book/></books>{"book": [{}, {}]}Éléments répétés fusionnés en array
root element<bookstore>...</bookstore>{"bookstore": {...}}Racine encapsulée dans { [tagName]: ... }
namespace prefix<svg:circle/>{"svg:circle": {...}}DOMParser prend en charge les espaces de noms

Comparaison JSON vs YAML

Les deux formats de sortie pris en charge par l'outil :

DimensionJSONYAMLNotes
Syntaxe{ } : [ ] concisindentations + - listesJSON concis, YAML lisible
Typesnumber/bool/null natifsnumber/bool/null natifsTous deux préservent les types
Indentation2 espaces2 espacesL'outil utilise 2 espaces
Arrays[1, 2, 3]- 1\n- 2\n- 3JSON crochets, YAML tirets
Commentairesnon supportés# commentairesYAML supporte les commentaires
Cas d'usageREST API, frontend-backendK8s, Docker, CI/CDWeb utilise JSON, config utilise YAML

Privacy & Security

Cet outil de XML vers JSON s'exécute entièrement dans votre navigateur. L'analyse XML (alimentée par le DOMParser natif du navigateur), le parcours de l'arborescence DOM, la sérialisation JSON et la conversion YAML s'exécutent en JavaScript côté client ; xml-formatter est la seule dépendance externe (un package npm de moins de 30 Ko). Les données XML d'origine ne sont jamais envoyées à un serveur. Les téléchargements de fichiers utilisent l'API FileReader native du navigateur et ne passent jamais par un service intermédiaire. L'outil n'utilise pas de cookies de suivi et ne collecte aucune donnée d'entrée ou d'utilisation. Toutes les entrées et sorties sont effacées de la mémoire dès que la page est fermée ou rechargée. Sûr à utiliser pour les messages XML contenant des données commerciales confidentielles (informations de commande, identifiants d'utilisateur, réponses d'API d'entreprise).

Authoritative References