Cómo convertir JSON a XML
- Pega el JSON o abre un archivo
.json. El XML aparece al lado mientras escribes. - Indica el nombre del elemento raíz (o déjalo vacío para usar la única clave de nivel superior), el prefijo de atributos y la sangría.
- Copia el XML o descárgalo como archivo
.xml.
Cómo se convierte el JSON en XML
| JSON | XML |
|---|---|
{"name": "Ada"} | <name>Ada</name> |
{"@id": "7"} | atributo id="7" en el elemento padre |
{"#text": "Hello"} | contenido de texto del elemento padre |
{"tag": ["a", "b"]} | <tag>a</tag><tag>b</tag> |
{"note": null} | <note/> |
{"2nd key": 1} | <_2nd_key>1</_2nd_key>: los nombres no válidos se corrigen |
array de nivel superior [1, 2] | <root><item>1</item><item>2</item></root> |
&, <, > en el texto | &, <, > |
JSON vs XML
JSON tiene arrays, números, booleanos y null; XML solo tiene elementos, atributos y texto, así que los tipos no se conservan: 42 y "42" se convierten ambos en el texto 42. A su vez, XML tiene atributos, espacios de nombres y contenido mixto, que JSON no tiene. Si piensas volver a convertir el XML a JSON más adelante, mantén las convenciones habituales que se usan aquí (@ para los atributos y #text para el contenido de texto), que la mayoría de los conversores entienden.
Preguntas frecuentes
¿Cómo se convierten los arrays JSON a XML?
Cada valor del array se convierte en un elemento con el nombre de la clave del array, así que {"book": [ … ]} genera varios elementos <book>. Los valores de un array de nivel superior se convierten en elementos <item> dentro de la raíz.
¿Cómo creo atributos XML desde JSON?
Añade el prefijo @ a la clave: {"user": {"@id": 7, "name": "Ada"}} se convierte en <user id="7"><name>Ada</name></user>. Puedes cambiar el prefijo en las opciones.
¿Qué pasa con las claves que no son nombres XML válidos?
Los caracteres que no pueden aparecer en los nombres XML, como los espacios, se sustituyen por guiones bajos, y los nombres que empiezan por un dígito o por “xml” reciben un guion bajo delante: "2nd key" se convierte en <_2nd_key>.
¿El XML generado es válido?
Sí. Los caracteres especiales se escapan, todos los nombres de elemento son válidos y el documento tiene exactamente un elemento raíz, con una declaración XML opcional al principio.