Convertisseur JSON vers XML

Convertissez des données JSON en XML. @attributes redevient les attributs de l'élément, #text le contenu textuel, et les tableaux des éléments frères répétés — le processus inverse de notre convertisseur XML vers JSON, directement dans le navigateur.

Comment fonctionne cette conversion de JSON en XML

JSON et XML décrivent tous deux des données structurées, mais pas tout à fait les mêmes choses. XML possède des attributs et un contenu textuel, deux notions qui n'existent pas en JSON. Toute conversion directe se heurte donc toujours aux deux mêmes questions : comment exprimer les attributs, et comment rendre à un tableau sa forme d'éléments répétés. Cet outil suit la convention la plus répandue et fait correspondre `@attributes` aux attributs de l'élément, `#text` au contenu textuel, et les tableaux à des éléments frères portant le même nom.

Ainsi, `{"book": {"@attributes": {"id": "1"}, "#text": "Titre"}}` devient `Titre`, tandis que `{"item": [1, 2]}` produit les deux frères `12`. Dans le contenu textuel, `&`, `<` et `>` sont automatiquement échappés en références d'entité, et les valeurs d'attribut voient en plus le guillemet droit échappé : une valeur contenant de la ponctuation ne produit donc jamais de XML cassé. Tout le traitement se déroule dans votre navigateur et rien n'est envoyé à un serveur.

Comment convertir du JSON en XML

  1. Collez le JSON Saisissez le JSON à convertir, qu'il s'agisse d'un objet ou d'un tableau.
  2. Placez dans @attributes ce qui doit être un attribut Regroupez dans un objet `@attributes` les clés que vous souhaitez obtenir comme attributs de l'élément.
  3. Placez le contenu textuel dans #text Lorsqu'un élément doit porter à la fois des attributs et un corps, placez la valeur du corps sous `#text`.
  4. Vérifiez le résultat et copiez-le Vous obtenez un XML indenté, prêt à être collé dans un fichier de configuration ou une requête d'API.

Astuces pour en tirer le meilleur parti

  • Placez un objet sous la clé `@attributes` et chacune de ses propriétés deviendra un attribut de l'élément converti.
  • Utilisez une clé `#text` pour le contenu textuel d'un élément qui possède aussi des attributs ou des éléments enfants. Un élément simple sans attribut peut utiliser directement une chaîne comme valeur.
  • Donnez un tableau à la même clé et chaque élément sera généré comme un élément frère répété portant ce nom.
  • Une valeur `null` produit une balise vide et auto-fermante (``) sans attribut, texte ni enfants.
  • Cet outil attend une entrée au format produit par notre "Convertisseur XML vers JSON" (un objet dont la clé est le nom de l'élément racine, avec exactement une clé de premier niveau).

Dans quels cas cela sert

Envoyer vers une API qui n'accepte que du XML

Quand vos données sont en JSON mais que le destinataire exige du XML, situation courante lors de l'intégration avec d'anciens systèmes de gestion.

Migrer un format de configuration

Utile comme premier brouillon pour transférer des réglages écrits en JSON vers un outil fondé sur XML.

Penser la structure XML en JSON

Écrire à la main un XML très imbriqué est fastidieux ; le monter en JSON puis le convertir reste bien plus lisible.

Fixer la convention elle-même

Essayer la façon dont `@attributes` et `#text` se traduisent aide à arrêter la spécification d'un convertisseur que vous écrivez vous-même.

Les termes de la conversion JSON vers XML

Attribut
La partie `id="1"` de ``. JSON n'a pas d'équivalent, aussi cet outil la représente-t-il par la clé spéciale `@attributes`.
Contenu textuel (#text)
Le corps de `Titre`. Utilisez `#text` lorsqu'un élément doit porter attributs et corps en même temps.
Référence d'entité (échappement)
Réécrire `&` en `&`, et ainsi de suite. **L'esperluette doit être convertie en premier, sinon le `&` d'un `<` fraîchement produit se trouve échappé une seconde fois.**
Éléments frères répétés
XML exprime une liste en répétant des éléments portant le même nom de balise. Un tableau JSON retrouve cette forme.
Élément racine
XML exige exactement un élément au niveau le plus haut. Lorsque le niveau supérieur de votre JSON comporte plusieurs clés, cela mérite réflexion.

Questions fréquentes

Une clé nommée `@attributes` contenant un objet transforme chacune de ses propriétés en un attribut de l'élément XML résultant. Par exemple, `{"@attributes": {"category": "fiction"}}` se convertit en un attribut `category="fiction"`.

Attribuer un tableau à la même clé génère chaque élément du tableau comme un élément frère répété portant ce nom. Par exemple, `"book": [{"title": "A"}, {"title": "B"}]` se convertit en XML contenant deux balises ``.

La cause la plus fréquente est une erreur de syntaxe JSON (une virgule manquante ou une clé sans guillemets). Le XML exige aussi exactement un élément racine, donc un JSON avec plusieurs clés de premier niveau, ou avec un tableau à la racine, échouera également.

Oui, notre "Convertisseur XML vers JSON" gère le sens inverse. Comme les deux outils utilisent la même convention de conversion, le contenu est préservé dans les deux sens.

Cet outil suppose la convention utilisée par le "Convertisseur XML vers JSON" (`@attributes`, `#text`, tableaux et null). Un JSON à structure libre qui ne suit pas cette convention — comme une réponse d'API typique remplie de nombres et de booléens — pourrait ne pas se convertir dans la structure XML attendue.
Tool-kun

Anecdote — Ce à quoi faire attention en "reconvertissant" du JSON en XML

Convertir du XML en JSON ressemble un peu à une compression d'information. Le XML peut porter trois types d'informations — attributs, texte et éléments enfants — alors que le JSON n'a que de simples paires clé-valeur, si bien qu'une convention doit être adoptée au moment de la conversion (cet outil suit les quatre mêmes règles : `@attributes`, `#text`, tableaux et null). Tant que cette convention est respectée, reconvertir du JSON en XML est un processus mécanique et bien défini — mais forcer un JSON à structure libre qui ne la suit pas peut laisser incertain ce qui devrait être un attribut ou un élément, et le résultat peut ne pas correspondre à ce qui était attendu.

En pratique, cela se produit lorsque la réponse d'une ancienne API XML est convertie en JSON pour être traitée plus facilement en JavaScript, puis reconvertie en XML pour être envoyée à un autre système — par exemple, remodeler la réponse d'une API SOAP en JSON avant de la renvoyer sous forme de requête de type SOAP. Dans ce genre d'aller-retour, garder la convention de conversion cohérente est primordial ; intercaler un outil utilisant une convention différente peut brouiller la relation entre attributs et texte.

Cet outil exige strictement exactement une clé de premier niveau car cela reflète une règle du XML lui-même — un document doit avoir exactement un élément racine. Si vous devez convertir un JSON avec plusieurs clés de premier niveau, enveloppez-le au préalable dans une clé parente commune (par exemple `root`), et il se convertira proprement en XML avec un unique élément racine.