DataSwap Conversores de archivos y datos rápidos, sin registro

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 &amp; 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 &amp; Co.</name>
    <tags>a</tags>
    <tags>b</tags>
  </person>
</root>

Observa que el & se convirtió en &amp; 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.