Conversor de JSON a XML
Pega tu JSON abajo y obtén XML bien formado al instante —
construido con las propias APIs del DOM del navegador (
createElement, appendChild, XMLSerializer), no con concatenación de cadenas, así
que los caracteres especiales se escapan automáticamente. Nada de
lo que pegues sale nunca de tu navegador.
Construye XML con las propias APIs de elementos del DOM, no con concatenación de cadenas
Esta herramienta nunca ensambla XML pegando cadenas — en su
lugar llama a document.implementation.createDocument() para
construir un Document XML real, luego createElement
y appendChild para hacerlo crecer, y entrega el
árbol terminado a new XMLSerializer().serializeToString(doc). Esto
importa porque el contenido de texto asignado a través de el.textContent se escapa automática y correctamente
por el navegador — un & en tus datos se
convierte en & en la salida sin que esta
herramienta tenga que recordar hacerlo por sí misma. Las claves
de objeto se convierten en nombres de etiqueta de elementos
hijos. Los valores de arreglo nunca reciben un elemento
contenedor: cada elemento repite la clave del arreglo como
hermano — un arreglo "tags" con dos entradas
produce dos elementos <tags> hermanos, no un <tags> que contiene una lista. Los valores
primitivos (cadenas, números, booleanos) se convierten en el
contenido de texto del elemento, y todo se envuelve en un
elemento raíz que tú mismo puedes nombrar.
Ejemplo práctico
Entrada: {"person":{"name":"O'Brien & Co.","tags":["a","b"]}}
— un apóstrofo y un símbolo & en un nombre, y un arreglo de dos
elementos. La conversión produce:
<root>
<person>
<name>O'Brien & Co.</name>
<tags>a</tags>
<tags>b</tags>
</person>
</root>
Observa que el & se convirtió en & automáticamente — eso lo hace XMLSerializer, no una regla de reemplazo escrita a
mano — y tags produjo dos elementos hermanos en vez
de un elemento que colapsa ambos valores en una sola línea.
Ahora prueba con una clave que no puede ser un nombre de
etiqueta, como {"1er lugar": "oro"} — en vez de
emitir XML roto, esta herramienta te indica exactamente qué
clave falló y por qué. ¿Necesitas ir en la dirección contraria?
El Conversor de XML a JSON
analiza XML real y lo convierte en JSON usando el propio
DOMParser del navegador.
Preguntas frecuentes
¿Cómo se convierte un arreglo JSON en XML? ¿Obtengo un elemento contenedor?
Sin contenedor — cada elemento del arreglo se convierte en su propio elemento hermano que repite la clave del arreglo. {"tag":["math","computing"]} se convierte en <tag>math</tag><tag>computing</tag>, no en un elemento <tag> que contiene dos hijos. Esto refleja cómo se escribe el XML realmente en la práctica: elementos hermanos repetidos, no un único elemento que envuelve una lista. Un arreglo JSON de nivel superior sin clave (sin objeto contenedor) usa el nombre de elemento "item" para cada entrada, ya que no hay ninguna clave que repetir en ese nivel.
¿Qué pasa si una de mis claves JSON no es un nombre de elemento XML válido?
Se rechaza con un mensaje claro en vez de producir XML roto en silencio. Los nombres de elemento deben empezar con una letra o un guion bajo y contener solo letras, números, guiones bajos, guiones y puntos — sin dígito inicial, sin espacios, sin dos puntos. Una clave como "1er lugar" o "nombre completo" falla esa comprobación de inmediato, antes de construir ningún elemento, y el mensaje de error indica exactamente qué clave falló.
¿Puedo cambiar el nombre del elemento raíz?
Sí — el campo "Elemento raíz" encima de la entrada lo controla, y por defecto usa "root" si lo dejas vacío. Pasa por la misma comprobación de validez que cualquier otra clave, así que un nombre de raíz no válido se rechaza igual que lo haría una clave de objeto no válida.
¿Qué ocurre con los valores null, los objetos vacíos y los arreglos vacíos?
Un valor null se convierte en un elemento vacío — <segundoNombre/> en vez de una cadena literal como "null". Un objeto vacío {} también se convierte en un elemento vacío, ya que no tiene claves que convertir en hijos. Un arreglo vacío [] no produce ningún elemento para esa clave, porque hay cero elementos que repetir — esta es la consecuencia directa de que los arreglos no reciban un elemento contenedor.
¿Se sube mi JSON a algún servidor?
No. El XML se construye por completo en tu navegador usando las propias APIs del DOM — document.implementation.createDocument(), createElement y XMLSerializer — nada de lo que pegues se envía, se guarda ni se registra en ningún servidor. Eso es válido para cada herramienta de este sitio.