Guide de conversion XML et JSON : Transformation de fichiers de configuration et de formats de données API

JSON

Différences clés : XML vs JSON

Caractéristique XML JSON
Format de données Balisage basé sur les balises Paires clé-valeur
Attributs Oui (<node attr="val">) Non (les attributs deviennent des champs)
Espaces de noms Oui (xmlns) Non
Commentaires Oui (<!-- -->) Non
Tableaux Implicites (éléments répétés) Explicites ([])
Nœuds texte Contenu mixte (balises + texte) Valeurs de chaîne simples

XML est meilleur pour les données de type document (SVG, HTML, configurations). JSON est meilleur pour les données structurées (réponses API).


Comment les attributs XML sont mappés en JSON

Les éléments XML peuvent avoir à la fois des attributs et du contenu texte — c'est la partie délicate de la conversion :

Élément simple

<person name="John" age="30"/>
{
  "person": {
    "@name": "John",
    "@age": "30"
  }
}

Convention : utilisez le préfixe @ pour les attributs XML. C'est la règle de conversion la plus courante.

Contenu mixte (Attributs + Texte)

<price currency="USD">68.00</price>
{
  "price": {
    "@currency": "USD",
    "#text": "68.00"
  }
}

Utilisez #text pour le contenu texte de l'élément, le distinguant des attributs.


Détection des tableaux : Le piège le plus courant

En XML, les tableaux sont implicites — les éléments répétés avec le même nom forment un tableau :

<books>
  <book>Three-Body Problem</book>
  <book>To Live</book>
</books>
{
  "books": {
    "book": ["Three-Body Problem", "To Live"]
  }
}

Problème : Avec un seul élément, XML ne peut pas le distinguer d'un non-tableau :

<books>
  <book>Three-Body Problem</book>
</books>

Cela pourrait être converti en :

{
  "books": {
    "book": "Three-Body Problem"
  }
}

Solution : Dans l'outil XML↔JSON, cochez « Forcer le tableau » et spécifiez quels éléments doivent toujours être traités comme des tableaux.


Gestion des espaces de noms

Les espaces de noms XML n'ont pas d'équivalent direct en JSON :

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
    <m:GetPrice xmlns:m="http://example.com">
      <m:Item>123</m:Item>
    </m:GetPrice>
  </soap:Body>
</soap:Envelope>

Stratégies courantes :

Stratégie Description Cas d'usage
Conserver le préfixe soap:Body"soap:Body" Traitement SOAP/WSDL
Supprimer le préfixe soap:Body"Body" Cas simples, sans conflits
Clé d'espace de noms {soap}Body Besoin de distinguer des éléments de même nom d'espaces de noms différents

Utilisez le Formateur XML pour nettoyer le XML avant la conversion.


Utilisation de l'outil XML↔JSON

Étape 1 : Ouvrir l'outil

Visitez l'outil XML↔JSON et sélectionnez la direction de conversion.

Étape 2 : Saisir les données source

  • XML → JSON : Collez la chaîne XML
  • JSON → XML : Collez la chaîne JSON

Vous pouvez d'abord embellir l'entrée avec le Formateur JSON ou le Formateur XML.

Étape 3 : Configurer les options de conversion

Option Description
Préfixe d'attribut Mapper les attributs comme @attr ou $attr
Clé de nœud texte Mapper le contenu texte comme #text ou _text
Forcer le tableau Spécifier les noms d'éléments devant toujours être des tableaux
Espaces de noms Conserver / supprimer / transformer

Étape 4 : Exécuter la conversion

Cliquez sur « Convertir », vérifiez le résultat et copiez.


Scénarios pratiques

Migration de fichiers de configuration

De nombreux projets existants utilisent des configurations XML (Spring, Maven). Les nouveaux projets préfèrent YAML/JSON :

pom.xml → package.json (informations de dépendances)
spring-config.xml → application.json (configuration de Beans)

API SOAP vers REST

Les réponses SOAP sont en XML ; elles nécessitent une conversion en JSON pour une utilisation front-end :

Réponse XML SOAP → JSON → rendu front-end

Extraction de métadonnées SVG

SVG est au format XML ; extrayez les métadonnées en JSON pour un traitement programmatique :

<svg width="100" height="100"> → {"svg": {"@width": "100", "@height": "100"}}

Considérations JSON vers XML

Lors de la conversion de JSON en XML, notez :

Considération Description
Élément racine JSON doit avoir une seule clé racine
Validité du nom de clé Les noms de balises XML ne peuvent pas commencer par un chiffre ou contenir des espaces
Encapsulation des tableaux Les tableaux JSON nécessitent un nom d'élément wrapper
Caractères spéciaux <, >, & doivent être échappés comme entités

Problèmes courants

Problème Cause Solution
Élément unique non converti en tableau XML ne peut pas distinguer un élément unique d'un tableau Cochez « Forcer le tableau »
Attributs perdus Règles de conversion sans préfixe d'attribut Vérifiez le paramètre de préfixe d'attribut
Conflit d'espaces de noms Éléments de même nom dans différents espaces de noms Conservez les préfixes d'espaces de noms
Erreur JSON vers XML Nom de clé invalide Renommez la clé pour respecter la spécification XML
Contenu mixte perdu Clé de nœud texte incorrectement mappée Vérifiez la configuration #text

Résumé

La conversion XML↔JSON est un besoin courant dans la migration de formats de données et l'intégration API. Comprendre les trois problèmes clés — le mappage des attributs, la détection des tableaux et les espaces de noms — est essentiel pour une conversion correcte. L'outil XML↔JSON offre des options de conversion flexibles, tandis que le Formateur JSON et le Formateur XML complètent votre flux de conversion de formats.

#XML#JSON#格式转换#API#配置