Utilia

Convertidor de JSON a XML

Converteix JSON a XML i XML a JSON al navegador, amb atributs, elements repetits i CDATA. No es puja res a cap servidor.

Conversió

Com fer servir el convertidor de JSON a XML

  1. Tria la direcció: JSON → XML o XML → JSON.
  2. Enganxa les dades, o fes clic a Obre un fitxer per carregar un fitxer .json o .xml (fins a 10 MB).
  3. Defineix les opcions: Sagnia (2 espais, 4 espais, tabulador o Cap (compacte)) per a les dues direccions; Element arrel i Afegeix la declaració XML per a JSON → XML; Converteix nombres i booleans per a XML → JSON.
  4. Fes clic a Converteix. El resultat també s’actualitza mentre escrius, i els errors mostren la línia i la columna on s’ha trobat el problema.
  5. Copia o baixa el resultat. Inverteix la direcció posa la sortida de nou a l’entrada perquè puguis comprovar l’anada i tornada.

Com es correspon JSON amb XML

XML i JSON no tenen el mateix model de dades, de manera que tot convertidor segueix una convenció. Aquesta eina fa servir la convenció molt estesa de la biblioteca fast-xml-parser:

JSON XML
{"title": "Dune"} <title>Dune</title>
{"book": {"@id": "42"}} <book id="42"/>
{"p": {"@lang": "en", "#text": "Hi"}} <p lang="en">Hi</p>
{"tag": ["a", "b"]} <tag>a</tag><tag>b</tag>
  • Les claus que comencen per @ es converteixen en atributs, i la clau #text conté el text d’un element que també té atributs.
  • Una matriu es converteix en un element repetit amb el mateix nom.
  • Un document XML necessita exactament un element arrel. Si el teu JSON és un objecte amb una sola clau el valor de la qual és un objecte, aquesta clau passa a ser l’arrel. Si no, tot el valor s’envolta amb l’element anomenat a Element arrel (root per defecte), i els elements de la matriu de primer nivell es converteixen en elements <item>.
  • Les claus que no són noms XML vàlids es corregeixen: els espais i els símbols es converteixen en _, i un nom que comença per un dígit rep un _ al davant ("1st place" → <_1st_place>).
  • null i les cadenes buides donen un element buit com <note/>. Els caràcters especials (&, <, >, cometes) s’escapen.

Com es correspon XML amb JSON

  • Els atributs es converteixen en claus amb el prefix @, i el text barrejat es converteix en #text.
  • Els elements repetits es converteixen en una matriu; un element que apareix una sola vegada es converteix en un valor únic.
  • Les seccions CDATA es fusionen amb el text, i les entitats com &amp; es descodifiquen. La declaració XML, les instruccions de processament i els comentaris s’eliminen.
  • Amb Converteix nombres i booleans, <price>12.5</price> es converteix en 12.5 i true en un booleà, mentre que els valors amb un zero inicial, com 007, continuen sent cadenes. Desactiva l’opció per mantenir tots els valors com a text.

Abans de convertir, es comprova que l’XML estigui ben format: una etiqueta de tancament que falta, una etiqueta que no coincideix o un & sense escapar s’informen amb la seva línia i columna.

Preguntes freqüents

S'envien les meves dades a un servidor?

No. La conversió s’executa íntegrament al teu navegador. Els teus canals XML, missatges SOAP i fitxers de configuració es queden al teu ordinador.

Per què un element es converteix en una matriu en un fitxer i en un objecte en un altre?

XML no diu si un element és una llista. Quan <tag> apareix dues vegades, es converteix en una matriu; quan apareix una sola vegada, és un valor únic. Si el teu codi espera una matriu, gestiona tots dos casos o afegeix un segon element quan facis proves.

Per què l'anada i tornada no sempre és idèntica?

Alguna informació no té equivalent a l’altra banda: els comentaris, l’ordre del contingut barrejat o la diferència entre una matriu d’un sol element i un valor únic. Per a documents de dades típics, convertir JSON → XML → JSON retorna la mateixa estructura.

Puc fer servir espais de noms?

Sí. Els noms amb prefix com soap:Envelope i atributs com @xmlns:soap es conserven tal com són en les dues direccions.

Valida amb un esquema XSD?

No. Comprova que l’XML estigui ben format, però no el valida amb un DTD ni amb un esquema XSD.