Utilia

Convertisseur JSON en XML

Convertissez du JSON en XML et du XML en JSON dans votre navigateur : attributs, éléments répétés et CDATA gérés, aucune donnée envoyée.

Conversion

Comment convertir du JSON en XML

  1. Choisissez le sens : JSON → XML ou XML → JSON.
  2. Collez vos données ou cliquez sur Ouvrir un fichier pour charger un fichier .json ou .xml (10 Mo au maximum).
  3. Réglez les options : l’Indentation (2 espaces, 4 espaces, tabulation ou Aucune (compact)) dans les deux sens ; l’Élément racine et Ajouter la déclaration XML pour JSON → XML ; Convertir les nombres et les booléens pour XML → JSON.
  4. Cliquez sur Convertir. Le résultat se met aussi à jour pendant la saisie, et les erreurs indiquent la ligne et la colonne où le problème a été détecté.
  5. Copiez ou téléchargez le résultat. Inverser le sens replace le résultat dans la zone de saisie pour vérifier l’aller-retour.

Correspondance entre JSON et XML

XML et JSON n’ont pas le même modèle de données : tout convertisseur suit donc une convention. Cet outil applique celle, très répandue, de la bibliothèque fast-xml-parser :

JSON XML
{"titre": "Dune"} <titre>Dune</titre>
{"livre": {"@id": "42"}} <livre id="42"/>
{"p": {"@lang": "fr", "#text": "Salut"}} <p lang="fr">Salut</p>
{"tag": ["a", "b"]} <tag>a</tag><tag>b</tag>
  • Les clés qui commencent par @ deviennent des attributs, et la clé #text contient le texte d’un élément qui porte aussi des attributs.
  • Un tableau devient un élément répété portant le même nom.
  • Un document XML doit avoir un seul élément racine. Si votre JSON est un objet à une seule clé dont la valeur est un objet, cette clé devient la racine. Sinon, l’ensemble est placé dans l’élément indiqué dans Élément racine (root par défaut), et les éléments d’un tableau de premier niveau deviennent des éléments <item>.
  • Les clés qui ne sont pas des noms XML valides sont corrigées : espaces et symboles deviennent _, et un nom qui commence par un chiffre reçoit un _ initial ("1re place" → <_1re_place>).
  • null et les chaînes vides donnent un élément vide, comme <note/>. Les caractères spéciaux (&, <, >, guillemets) sont échappés.

Correspondance entre XML et JSON

  • Les attributs deviennent des clés préfixées par @, et le texte mêlé à des attributs devient #text.
  • Les éléments répétés deviennent un tableau ; un élément présent une seule fois devient une valeur simple.
  • Les sections CDATA sont fusionnées dans le texte, et les entités comme &amp; sont décodées. La déclaration XML, les instructions de traitement et les commentaires sont supprimés.
  • Avec Convertir les nombres et les booléens, <prix>12.5</prix> devient 12.5 et true devient un booléen, tandis que les valeurs à zéro initial, comme 007, restent des chaînes. Décochez l’option pour tout garder en texte.

Avant la conversion, l’outil vérifie que le XML est bien formé : une balise fermante manquante, une balise mal appariée ou un & non échappé est signalé avec sa ligne et sa colonne.

Questions fréquentes

Mes données sont-elles envoyées sur un serveur ?

Non. La conversion se fait entièrement dans votre navigateur. Vos flux XML, messages SOAP et fichiers de configuration restent sur votre ordinateur.

Pourquoi un élément devient-il un tableau dans un fichier et un objet dans un autre ?

XML n’indique pas si un élément est une liste. Quand <tag> apparaît deux fois, il devient un tableau ; quand il n’apparaît qu’une fois, c’est une valeur simple. Si votre code attend un tableau, prévoyez les deux cas, ou ajoutez un second élément pour vos tests.

Pourquoi l'aller-retour n'est-il pas toujours identique ?

Certaines informations n’ont pas d’équivalent de l’autre côté : les commentaires, l’ordre du contenu mixte, ou la différence entre un tableau à un seul élément et une valeur simple. Pour des documents de données courants, la conversion JSON → XML → JSON restitue la même structure.

Les espaces de noms sont-ils pris en charge ?

Oui. Les noms préfixés comme soap:Envelope et les attributs comme @xmlns:soap sont conservés tels quels dans les deux sens.

L'outil valide-t-il le XML avec un schéma XSD ?

Non. Il vérifie que le XML est bien formé, mais ne le valide pas par rapport à une DTD ou à un schéma XSD.