Conversion JSON ⇄ XML
JSON ⇄ XML
Convertit entre JSON et XML, avec un traitement réglable des attributs, des tableaux et des nœuds texte.
Convertit du XML en JSON et inversement. Il n'existe pas de correspondance canonique entre les deux — XML a des attributs, du contenu mixte ordonné et des espaces de noms, JSON n'a rien de tout cela —, alors cette page rend ses choix explicites et vous laisse les changer au lieu de cacher une convention.
Un attribut devient `@id`.
Là où va le texte propre d’un élément.
XML
JSON
@name et le texte propre d’un élément se retrouve dans #text, tandis que des frères de même nom deviennent un tableau. C’est ce dernier point qui peut faire perdre de l’information à l’aller-retour : une liste qui n’a qu’un seul élément revient sous la forme d’un objet unique, sauf si « toujours des tableaux » est activé.Entrée
215 caractères
Sortie
399 caractères
Comment s’en servir
Choisissez le sens
Les deux côtés gardent des entrées séparées : passer de l'un à l'autre ne perd donc pas ce que vous aviez collé.
Réglez le préfixe d'attribut et la clé de texte
`@` et `#text` sont la convention répandue (fast-xml-parser, xml2js et d'autres les emploient), mais si le JSON que vous devez produire en utilise d'autres, changez-les ici plutôt qu'en post-traitement.
Activez toujours-des-tableaux si le JSON part vers du code
C'est la partie avec perte de la correspondance : un `<item>` seul devient un objet, deux deviennent un tableau, et le code qui les consomme doit gérer les deux cas. Forcer les tableaux rend la forme stable, au prix d'un peu de verbosité.
Questions fréquentes
L'aller-retour me rend-il mon XML ?
Structurellement, en général oui ; octet pour octet, non. Les commentaires, les instructions de traitement et la distinction entre `<a/>` et `<a></a>` ne survivent pas, et le contenu mixte — texte et éléments entrelacés — ne peut pas être représenté en JSON d'une façon qui en préserve l'ordre.
Pourquoi `12` est-il une chaîne ?
Parce que XML n'a pas de types — toute valeur d'un document est du texte, et seul un schéma dit le contraire. L'interrupteur de conversion devinera les nombres et les booléens, mais c'est une supposition : un code produit `0123` devient 123, et une chaîne de version `1.10` devient 1.1.
Que deviennent les espaces de noms ?
Les préfixes sont gardés comme partie du nom de l'élément — `soap:Body` devient la clé `soap:Body` — et les déclarations `xmlns` passent comme des attributs ordinaires. Rien n'est résolu vers un URI d'espace de noms : deux documents qui emploient des préfixes différents pour le même espace de noms produisent donc du JSON différent.
Puis-je lui donner une réponse SOAP ?
Oui, et c'est l'une des raisons courantes de venir ici. L'enveloppe, le corps et la charge utile passent tous en objets imbriqués ; les clés `@` sont là où atterrissent les attributs SOAP.
À alimenter depuis
Formateur et validateur XML
XML Formatter & Validator
Indente le XML et indique la ligne et la colonne du premier défaut de bonne formation.
Testeur XPath
XPath Tester
Évalue une expression XPath ou un sélecteur CSS sur du XML ou du HTML et liste tous les nœuds trouvés.
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
Formateur et validateur YAML
YAML Formatter & Validator
Réindente le YAML de façon cohérente, le valide et signale les tabulations et les ancres qui font échouer les analyseurs.
Ensuite
Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
Testeur JSONPath
JSONPath Tester
Exécute une expression JSONPath sur un document et met en évidence les nœuds trouvés au fil de la saisie.
Formateur et validateur XML
XML Formatter & Validator
Indente le XML et indique la ligne et la colonne du premier défaut de bonne formation.
Testeur XPath
XPath Tester
Évalue une expression XPath ou un sélecteur CSS sur du XML ou du HTML et liste tous les nœuds trouvés.
Encodeur et décodeur Base64
Base64 Encoder & Decoder
Encode et décode en Base64 et en Base64URL, pour du texte comme pour des fichiers, avec un traitement correct de l’UTF-8.
curl vers code
curl to Code
Traduit une commande curl en fetch, axios, requests Python, Go, PHP ou PowerShell.