Mode d'emploi
- Collez le XML dans XML. Il est vérifié d'abord, et un problème est indiqué avec sa ligne et sa colonne.
- Gardez Lire les nombres, true et false comme valeurs cochée pour obtenir 12.5 comme nombre, ou décochez-la pour garder tout le texte en texte.
- Choisissez une Indentation, ou Sans sauts de ligne (minifié) pour le JSON le plus court.
- Copiez le JSON, ou téléchargez-le sous le nom converted.json.
La correspondance, règle par règle
L'élément racine devient le seul membre de l'objet JSON : une racine nommée catalog donne donc un membre catalog. Un attribut devient un membre dont le nom commence par @, comme @id. Le texte d'un élément devient sa valeur lorsque l'élément n'a rien d'autre ; lorsqu'il a aussi des éléments enfants, il devient le membre #text, débarrassé des espaces qui l'entourent.
Un élément enfant devient un membre portant son nom. Lorsque le même nom apparaît plusieurs fois, les membres deviennent un tableau dans l'ordre du document. Un élément sans attributs ni enfants vaut null lorsqu'il est écrit comme élément autofermant (une barre oblique à la fin de sa balise), et une chaîne vide lorsqu'il est écrit avec une balise ouvrante et une balise fermante.
- Les sections CDATA comptent comme du texte, exactement tel qu'écrit, si bien qu'un caractère < à l'intérieur reste un <.
- Les commentaires et les instructions de traitement sont omis, car le JSON n'a pas de place pour eux.
- Les références comme & et A sont lues, si bien que le texte contient les caractères qu'elles représentent.
Valeurs typées et ce qu'elles changent
Le XML n'a pas de nombres ni de booléens qui lui soient propres : 12.5 en XML n'est que du texte. Avec l'option de typage activée, un texte que le JSON rendrait exactement comme un nombre, true ou false est lu comme cette valeur. Un texte comme 12.50 ou 007 reste du texte, car un nombre l'écrirait autrement.
Une liste à un seul élément revient comme l'élément lui-même, et non comme un tableau, car le XML ne permet pas de distinguer les deux. Gardez cela en tête lorsque le JSON sera lu par un programme qui attend un tableau.
Exemple détaillé : le catalogue par défaut
Le XML par défaut est un catalogue de deux livres. Le premier livre a un attribut id, et ses éléments title, price et inStock deviennent des clés. Le second livre n'a pas d'élément inStock, et son élément price vide devient null.
Le JSON a un seul membre, catalog, et sa clé book est un tableau de deux objets. Le compteur indique 8 éléments : le catalogue, les deux livres et leurs enfants.
Questions fréquentes
Pourquoi mon nombre apparaît-il comme du texte ?
Un texte que le JSON ne réécrirait pas exactement reste du texte : 12.50 garde son zéro, et 007 garde ses zéros initiaux. Désactivez l'option de typage pour garder chaque valeur en texte.
Pourquoi un élément est-il un objet et non un tableau ?
Un tableau n'est créé que lorsque le même nom apparaît deux fois ou plus parmi les enfants d'un même élément. Un élément unique sort comme sa valeur, ce qui est le résultat habituel pour le XML.
Que deviennent les commentaires et les instructions de traitement ?
Ils sont omis. Le JSON n'a pas de place pour un commentaire : le convertisseur ne lit donc que les données. Gardez le XML si les commentaires comptent pour vous.
Pourquoi le convertisseur indique-t-il une ligne et une colonne ?
Le XML doit être bien formé avant de pouvoir être lu. La ligne et la colonne indiquent le premier endroit où le document enfreint les règles du XML, comme une balise fermante qui ne correspond pas.
Mon XML est-il envoyé à un serveur ?
Non. La conversion se fait dans votre navigateur. Rien de ce que vous collez n'est envoyé à notre serveur ni stocké là-bas.
Sources
- W3C (en anglais) : Extensible Markup Language (XML) 1.0, Fifth Edition
- IETF (en anglais) : RFC 8259, The JavaScript Object Notation (JSON) Data Interchange Format
Chiffres et texte vérifiés pour la dernière fois le mardi 10 novembre 2026.