Outils / Texte et données / Convertisseur XML vers JSON
Côté client

Convertisseur XML vers JSON

Collez du XML et obtenez du JSON instantanement, avec attributs, hierarchies imbriquees et noeuds de texte mappes de facon previsible, le tout traite localement dans votre navigateur.

Ce que fait l'outil

  • Attributs mappes vers des cles prefixees par @, texte des elements sous #text
  • Gere les hierarchies imbriquees et les elements repetes
  • Sur pour le XML interne de type SOAP, WSDL et fichiers de configuration
  • Fonctionne en local, aucune donnee ne quitte le navigateur

Convertissez du XML en JSON dans votre navigateur afin d'integrer des reponses SOAP/WSDL anciennes, des flux RSS, des exports de fournisseurs ou des fichiers de configuration dans un workflow REST, JavaScript ou microservice moderne, sans que rien de ce que vous collez ne soit jamais televerse. Tout s'execute localement sur votre appareil, ce qui signifie que vous pouvez pointer cet outil vers du XML interne ou proprietaire sans ecrire de code de liaison xml2js ou xmltodict, et sans faire confiance a un serveur inconnu.

Ce que cette conversion fait reellement (et ce qu'elle ne fait PAS)

Il s'agit d'une conversion avec perte qui remodele la structure, et non d'une transformation d'octets reversible comme le Base64. Le modele de document XML est plus riche que le modele de donnees JSON, si bien que convertir du XML en JSON puis de nouveau en XML ne garantit pas de reproduire votre fichier d'origine octet par octet. Le convertisseur remodele l'arbre en objets et tableaux JSON selon des regles documentees et deterministes.

Les attributs n'ont pas d'equivalent natif en JSON, ils sont donc conventionnellement mappes vers des cles avec un prefixe @ : <book id="1"> devient {"book":{"@id":"1"}}. Lorsqu'un element contient du texte aux cotes d'attributs ou d'elements enfants, ce texte est stocke sous une cle #text afin qu'il n'entre pas en collision avec les champs structures.

La surprise la plus courante dans la vie reelle est l'ambiguite entre element unique et element repete. Un seul <item> devient un objet JSON, mais deux <item> ou plus deviennent un tableau JSON. Le code consommateur qui attend toujours un tableau echouera dans le cas d'un element unique, planifiez donc votre analyse en aval en tenant compte de ce comportement. Les espaces de noms sont une autre aspirite : JSON n'a pas de notion d'espaces de noms XML, donc un prefixe comme ns:tag est soit conserve dans la cle, soit supprime, et il n'existe pas de choix universellement correct. Le contenu mixte, un element contenant a la fois du texte libre et des elements enfants, se mappe maladroitement car les objets JSON ne peuvent pas nativement entrelacer texte et champs structures.

Plusieurs elements sont entierement abandonnes. Les commentaires XML, les instructions de traitement, les enveloppes CDATA et les declarations DOCTYPE/DTD n'ont generalement pas de representation JSON, ils sont donc aplatis ou supprimes. Notez aussi que la sortie JSON est habituellement plus petite que le XML source, puisqu'il n'y a pas de balises fermantes et un balisage bien moins verbeux, ce qui est l'une des raisons pour lesquelles les equipes convertissent le XML pour les payloads d'API et pour reduire la bande passante.

Quand choisir XML vers JSON

Choisissez cette conversion lorsque vous modernisez des reponses SOAP ou WSDL pour un client REST ou JavaScript, lorsque vous integrez des flux XML dans des pipelines nativement JSON, ou simplement lorsque vous inspectez une structure XML inconnue. Restez en XML lorsque vous avez reellement besoin de conserver fidelement les attributs, les espaces de noms, les commentaires, la validation par schema ou les transformations XSLT, car ces concepts ne survivent pas au trajet. Si votre objectif est la direction inverse ou une autre forme tabulaire, consultez la categorie des outils texte et donnees pour les conversions orientees lignes et la mise en forme du JSON obtenu ici.

Comment convertir

  1. Collez votre XML dans la zone de saisie, ou chargez le contenu d'une reponse SOAP/WSDL, d'un flux ou d'un fichier de configuration.
  2. L'outil le convertit en JSON dans une seule direction, en appliquant les regles d'attributs, de tableaux et de noeuds de texte decrites ci-dessus.
  3. Examinez la sortie JSON, puis copiez-la dans le presse-papiers ou telechargez-la sous forme de fichier.

Aucun upload. Tout s'execute sur votre appareil.

Le moteur de conversion est ecrit en Rust et compile en WebAssembly qui s'execute entierement dans l'onglet de votre navigateur. Il n'y a aucune requete reseau pour le traitement, l'outil continue de fonctionner une fois la page chargee meme si vous passez hors ligne, et il n'y a rien a supprimer ensuite puisque rien n'a jamais ete televerse. Vous pouvez le verifier vous-meme en ouvrant l'onglet Reseau des outils de developpement de votre navigateur et en constatant qu'il reste silencieux pendant que vous convertissez. Cela compte ici car les payloads XML transportent souvent des elements sensibles : reponses SOAP et WSDL internes, exports de donnees de fournisseurs, ou fichiers de configuration pouvant contenir des identifiants, des dossiers clients ou un schema proprietaire. Voici le convertisseur que vous pouvez pointer en toute securite vers du XML de production.

Aucune limite

Pas de plafond de taille de fichier, pas de limite de debit, pas de filigrane, pas d'inscription et pas de publicite. Convertissez autant de XML que necessaire, aussi souvent que necessaire.

Questions frequentes

Comment les attributs XML sont-ils representes dans la sortie JSON ?
Les attributs n'ont pas d'equivalent natif en JSON, ils sont donc conventionnellement mappes vers des cles avec un prefixe @, ce qui signifie que <book id="1"> devient {"book":{"@id":"1"}}. Lorsqu'un element a a la fois des attributs et du contenu textuel, le texte est stocke separement sous une cle #text afin que les deux n'entrent jamais en collision.
Pourquoi un seul element repete devient-il un objet plutot qu'un tableau, et puis-je forcer un tableau ?
Une occurrence d'un element devient un objet JSON, tandis que deux occurrences ou plus deviennent un tableau JSON, car le convertisseur deduit la forme du nombre de fois ou l'element apparait. C'est la source la plus courante de bugs en aval, donc si votre code consommateur attend toujours un tableau, vous devez normaliser le cas de l'element unique dans votre propre analyse plutot que de supposer qu'il s'agit deja d'une liste.
La conversion XML vers JSON est-elle reversible ?
Non, il s'agit d'une conversion avec perte qui remodele la structure plutot que d'une transformation d'octets reversible. Le modele de document XML est plus riche que celui de JSON, donc convertir le JSON de nouveau en XML ne garantit pas de reproduire votre fichier d'origine, surtout des lors que des commentaires, des espaces de noms et du contenu mixte sont impliques.
Comment les espaces de noms XML sont-ils geres dans le JSON converti ?
JSON n'a pas de notion d'espaces de noms XML, donc un convertisseur doit soit conserver le prefixe dans la cle (comme ns:tag), soit le supprimer. Il n'existe pas de choix universellement correct, verifiez donc les cles de sortie et ajustez votre mappage en aval en consequence.
Qu'advient-il du contenu mixte comportant a la fois du texte et des elements enfants ?
Le contenu mixte, ou un element contient du texte libre aux cotes d'elements enfants, se mappe maladroitement car les objets JSON ne peuvent pas nativement entrelacer texte et champs structures. Le texte est generalement capture sous une cle #text tandis que les elements enfants deviennent des proprietes voisines, ce qui preserve les donnees mais aplatit l'ordre d'origine.
Les commentaires XML, le CDATA et les declarations DOCTYPE sont-ils preserves ?
Non, les commentaires XML, les instructions de traitement, les sections CDATA et les declarations DOCTYPE/DTD n'ont generalement pas de representation JSON. Ils sont supprimes ou aplatis lors de la conversion, ne comptez donc pas sur la sortie JSON pour conserver l'une de ces constructions.
Puis-je convertir une reponse SOAP ou WSDL en JSON ?
Oui, les payloads SOAP et WSDL ne sont que du XML, ils se convertissent donc de la meme maniere que n'importe quel autre document XML. Comme tout s'execute localement dans votre navigateur sans upload, c'est un moyen sur de remodeler des reponses SOAP internes ou proprietaires sans les envoyer a un serveur tiers.
Mon XML est-il televerse vers un serveur ?
Non, la conversion s'execute entierement dans votre navigateur via du Rust compile en WebAssembly, avec zero requete reseau pour le traitement. Vous pouvez le verifier dans l'onglet Reseau des outils de developpement de votre navigateur, et l'outil continue de fonctionner meme si vous vous deconnectez d'internet apres le chargement de la page.
Pourquoi la sortie JSON est-elle plus petite que mon entree XML ?
La sortie JSON est generalement plus petite que le XML source car elle n'a pas de balises fermantes et utilise un balisage bien moins verbeux. Cette reduction de taille est l'une des raisons pour lesquelles les equipes convertissent le XML en JSON pour les payloads d'API et pour reduire la bande passante.

Explorez davantage d'outils texte et donnees pour mettre en forme votre resultat ou remodeler des donnees tabulaires.