JSON a XML

Conversor online gratuito de JSON a XML. Convierte objetos JSON en <root> y arrays en nodos <item> repetidos. Salida con prettyPrint, 100% en el navegador sin subidas.

Relacionado

Acerca de JSON a XML: convierte datos JSON en formato XML estándar

JSON a XML es el proceso de convertir datos en formato JSON (objetos o arrays JSON) en formato XML (eXtensible Markup Language). JSON (JavaScript Object Notation) es el formato de datos estándar para API web modernas; XML es el formato de datos tradicional para sistemas empresariales, SOAP Web Services, archivos de configuración y documentos de Office. Cada formato tiene sus fortalezas: JSON es conciso y fácil de analizar; XML es estricto, autodescriptivo y ampliamente compatible con espacios de nombres y validación de esquemas.

El núcleo de la herramienta es la conversión recursiva de nodos JSON en elementos XML basada en la biblioteca xmlbuilder2. Las reglas de conversión son simples: las claves de los objetos JSON se convierten en nombres de elementos XML, los valores en contenido de texto del elemento; los arrays se envuelven como elementos hijos <item> repetidos. Los objetos JSON se envuelven en un nodo <root> por defecto, y los arrays en <root><item>...</item></root>.

El mapeo de arrays a elementos repetidos es una decisión de diseño clave en JSON a XML. XML no tiene concepto nativo de array y representa datos de lista a través de elementos repetidos (por ejemplo, <item>1</item><item>2</item>). La herramienta usa uniformemente <item> como nombre del elemento hijo del array, con el envoltorio <root> externo formando una estructura estándar que coincide con las convenciones de intercambio de datos XML.

El modo prettyPrint genera XML que es mucho más legible que el modo minify. Los desarrolladores pueden abrirlo directamente en editores de texto, editores XML (XMLSpy, oXygen) o navegadores, sin tener que ejecutarlo primero a través de xmllint u otras herramientas de formato. Este diseño es particularmente útil al depurar y ajustar XML manualmente.

Las reglas para mapear tipos básicos JSON a XML son simples: las cadenas se usan directamente como texto del elemento (por ejemplo, <name>Alice</name>); los números se convierten a forma de cadena (por ejemplo, <age>30</age>); los booleanos se convierten a las cadenas 'true'/'false'; null se convierte en un elemento vacío o se omite.

Los objetos anidados generan recursivamente el árbol XML correspondiente. Por ejemplo, { "user": { "name": "Alice", "age": 30 } } se convierte en <root><user><name>Alice</name><age>30</age></user></root>. Esta estructura preserva la jerarquía del JSON original, lo que facilita a los analizadores XML consultar a través de XPath.

La herramienta utiliza mapeo de elementos puros: todos los datos JSON se convierten en elementos XML, sin atributos XML. Esto se debe a que el mapeo de elementos es más intuitivo, más legible y admite estructuras anidadas más complejas.

La conversión en tiempo real es una función práctica de la herramienta. La herramienta convierte 400ms después de dejar de escribir, con 5 atajos de teclado (macOS ⇧⌘+Enter/F/O/D/K), para que los usuarios puedan completar rápidamente operaciones comunes sin clics del ratón.

La auto-reparación de errores JSON mejora la tolerancia a fallos de la herramienta. El JSON del mundo real a menudo tiene pequeños problemas como comas finales, comillas simples, comillas faltantes o comentarios. La función incorporada tryFixJSON se invoca automáticamente cuando JSON.parse falla e intenta corregir errores comunes.

El procesamiento puramente del lado del cliente es la decisión arquitectónica central. Todo el análisis JSON y la generación XML se ejecutan en JavaScript del navegador; nunca se envía nada a un servidor. Los dos beneficios clave: primero, el JSON puede contener datos confidenciales (datos de usuarios, claves API, negocios internos) y el procesamiento local elimina por completo el riesgo de fuga; segundo, la velocidad de conversión está limitada solo por la CPU del dispositivo.

Casos de uso

  • Convierte respuestas JSON de API REST a XML para sistemas empresariales tradicionales (SAP, Oracle EBS) que solo aceptan XML.
  • Genera feeds RSS, feeds Atom o sitemap.xml a partir de configuración JSON para publicación de contenido e indexación SEO.
  • Prepara cuerpos de mensajes para SOAP Web Services (carga útil XML dentro del sobre SOAP) para integración de bus de servicios empresariales.
  • Convierte fixtures de prueba JSON a formato XML para probar código de análisis XML heredado o enlace de datos JAXB.
  • Convierte JSON exportado de bases de datos a XML para indexar y consultar en bases de datos XML (BaseX, eXist).
  • Convierte JSON exportado desde Excel a XML para usar en documentos Office Open XML o archivos de traducción XLIFF.
  • Convierte datos mock de API (JSON) a formato XML para probar clientes WSDL o serialización XML de gRPC.
  • Enseña la relación de conversión entre formatos de datos JSON y XML, ayudando a entender la lógica de mapeo entre formatos de serialización.

Cómo Usar

  1. Pega JSON en el editor izquierdo, haz clic en Subir para seleccionar un archivo .json/.txt, o haz clic en Muestra para cargar el ejemplo integrado.
  2. La herramienta convierte automáticamente con un debounce de 400ms. Visualiza el código XML generado a la derecha con el resaltado de sintaxis XML de CodeMirror.
  3. Haz clic en el botón Formatear (⇧⌘+F) para re-indentar el JSON a 2 espacios para una lectura más fácil de estructuras complejas.
  4. Haz clic en Copiar para copiar el XML al portapapeles, o haz clic en Descargar para guardarlo como archivo output.xml (MIME: text/xml).
  5. Para cambiar el nombre del nodo raíz o añadir espacios de nombres, edita manualmente el XML generado.
  6. Pega el XML en el sistema de destino (cliente API, editor XML, sistema empresarial) para usarlo.

Características

  • Mapeo inteligente de nodos: los objetos JSON se envuelven automáticamente en un nodo <root>, los arrays en nodos <item> repetidos, coincidiendo con las convenciones de intercambio de datos XML.
  • Salida con prettyPrint: impulsada por el modo prettyPrint de xmlbuilder2, el XML generado incluye sangría y saltos de línea para una excelente legibilidad.
  • Conversión automática en tiempo real: la herramienta convierte 400ms después de dejar de escribir, con 5 atajos de teclado para acelerar las operaciones comunes.
  • Auto-reparación de errores JSON: la rutina incorporada tryFixJSON maneja comas finales, comillas simples y comillas de clave faltantes automáticamente.
  • Compatibilidad con tipos básicos: null, boolean, number, string y otros tipos JSON básicos se convierten en texto de elemento XML.
  • Objetos anidados recursivos: objetos anidados de cualquier profundidad se convierten recursivamente en el árbol de elementos XML correspondiente.
  • Soporte de arrays multinivel: arrays unidimensionales y multidimensionales se convierten correctamente en estructuras de nodos <item> repetidos.
  • Resaltado dual JSON/XML: el lado izquierdo usa resaltado de sintaxis JSON de CodeMirror, el lado derecho usa resaltado XML para mayor claridad.
  • Sistema completo de atajos: 5 atajos comunes (convertir/formatear/subir/descargar/limpiar) para macOS y Windows/Linux.
  • Copiar y descargar: copia el resultado al portapapeles con un clic o descarga como archivo output.xml estándar (MIME: text/xml).
  • 100% en el navegador: todo el análisis JSON y la generación XML se realizan en JavaScript del lado del cliente; el JSON original nunca sale de tu dispositivo.
  • Recuperación del historial: la herramienta guarda automáticamente los últimos 200 elementos del historial y restaura la entrada anterior al cargar la página.

Preguntas Frecuentes

¿Cómo convierto JSON a formato XML?

Pega tu JSON en el editor izquierdo y la herramienta lo convierte automáticamente a formato XML estándar. Los objetos JSON se envuelven en un nodo <root> (por ejemplo, { "name": "Alice" } se convierte en <root><name>Alice</name></root>), y los arrays en nodos <item> repetidos. La conversión se ejecuta 400ms después de dejar de escribir.

¿Cómo se convierten los arrays JSON a XML?

Los arrays JSON se envuelven automáticamente en una estructura de dos niveles: el nodo <root> externo y los nodos <item> repetidos internos. Por ejemplo [{"a":1},{"a":2}] se convierte en <root><item><a>1</a></item><item><a>2</a></item></root>. Este diseño coincide con las convenciones comunes de intercambio de datos XML (RSS, mensajes SOAP).

¿El XML generado está formateado?

Sí. La herramienta utiliza el modo prettyPrint de xmlbuilder2 para generar XML con sangría y saltos de línea. Los desarrolladores pueden pegar el resultado directamente en herramientas SOAP, editores XML o archivos de configuración sin formato manual.

¿Qué estructuras de datos JSON se admiten?

Se admiten todas las estructuras JSON válidas: primitivos (null, boolean, number, string), arrays de cualquier profundidad y objetos anidados de cualquier profundidad. Los arrays en cada nivel se envuelven en nodos <item> repetidos.

¿Se puede usar el XML descargado directamente con SOAP o RSS?

Sí. El XML generado cumple con la especificación XML 1.0 y puede ser analizado por la mayoría de herramientas SOAP, lectores RSS, bases de datos XML (BaseX, eXist) y sistemas empresariales (SAP, Oracle).

¿Qué pasa si mi JSON falla al analizar?

Cuando el JSON contiene comas finales, comillas faltantes o comillas simples en lugar de dobles, la herramienta llama automáticamente a tryFixJSON para intentar una reparación. Si la reparación tiene éxito, se te notificará; si no, el panel derecho muestra la ubicación exacta del error.

¿Puedo personalizar el nombre del nodo raíz XML?

Esta herramienta usa uniformemente root como nombre del nodo raíz y item para elementos de array. Estas son las convenciones más universales de intercambio de datos XML. Si necesitas personalizarlos, edita manualmente el XML generado o envuelve tu JSON con una clave personalizada.

¿Cómo se representan los números y booleanos JSON en XML?

XML no tiene tipos nativos de número ni booleano; todos los valores se convierten a cadenas. Por ejemplo, true en JSON se convierte en <isActive>true</isActive>, y 30 en <age>30</age>. En el momento del análisis, el parser XML convierte las cadenas según el esquema o las sugerencias de tipo.

¿Se admiten espacios de nombres XML?

La herramienta genera XML estándar sin espacios de nombres, adecuado para la mayoría de los casos de uso generales. Si necesitas XML SOAP o WSDL con espacios de nombres, puedes editar manualmente el XML generado para añadir declaraciones xmlns.

¿Se admiten atributos XML?

No. La herramienta utiliza mapeo de elementos puros: todas las claves JSON se convierten en elementos XML y todos los valores en contenido de texto del elemento. Si necesitas la forma de atributo, ajusta manualmente el XML generado o usa transformación XSLT.

¿Qué tipos de archivos de entrada se admiten?

La herramienta admite archivos .json y .txt (codificación UTF-8). Haz clic en el botón Subir para seleccionar un archivo local; la herramienta lo lee a través de la API FileReader nativa del navegador sin subirlo a un servidor.

¿Qué atajos de teclado hay disponibles?

La herramienta admite estos atajos: en macOS, ⇧⌘+Enter para convertir, ⇧⌘+F para formatear, ⇧⌘+O para subir, ⇧⌘+D para descargar, ⇧⌘+K para limpiar; en Windows/Linux, usa Ctrl en lugar de ⌘.

Solución de problemas

El nodo raíz se llama root, ¿se puede cambiar?

La herramienta usa root uniformemente. Para personalizar: 1) edita manualmente el XML con buscar-reemplazar; 2) envuelve tu JSON con una clave (p. ej. {"response": {...}}) que genera <root><response>...</response></root>.

Error XML 'unclosed token', ¿qué hacer?

Suele ser que el JSON contiene caracteres especiales XML (<, >, &) sin escape. La herramienta los convierte automáticamente a entidades XML (&lt; &gt; &amp;), pero casos extremos (CDATA, comentarios) pueden requerir manejo manual.

¿Cómo personalizo el nombre del elemento de array (no item)?

Edita manualmente el XML y usa buscar-reemplazar para cambiar <item> al nombre deseado, ajustando también la etiqueta de cierre </item>.

Los números JSON se convirtieron en cadenas, ¿qué hacer?

XML no tiene tipo numérico nativo. Opciones: 1) usa un esquema XSD con xs:integer/xs:boolean; 2) pre-nombra las claves para insinuar tipos; 3) usa XSLT para convertir tipos tras la generación.

¿Cómo mantengo los números como tipo numérico en XML?

XML 1.0 no tiene tipo numérico nativo. Si debes preservarlo: 1) usa esquema XSD con xs:integer; 2) usa JSON Schema + herramienta de conversión; 3) añade namespace XSI.

¿Con qué abro el archivo .xml descargado?

El archivo output.xml es un archivo XML estándar codificado en UTF-8. Puedes abrirlo con cualquier editor de texto (VS Code, Sublime, Notepad++) o editor XML profesional (XMLSpy, oXygen), o arrastrarlo a un navegador (Chrome, Firefox).

¿Los emoji o caracteres no ASCII causan errores?

No. La herramienta admite codificación UTF-8 completa, incluidos chino, japonés, coreano y caracteres Unicode emoji. La biblioteca xmlbuilder2 maneja automáticamente el escape de entidades XML.

Glosario

JSON (JavaScript Object Notation)
Formato ligero de intercambio de datos basado en la sintaxis de objetos JavaScript, pero independiente de cualquier lenguaje de programación.
XML (eXtensible Markup Language)
Lenguaje de marcado extensible definido por W3C en 1998. Usa etiquetas para describir datos y admite espacios de nombres, validación de esquemas y transformaciones XSLT.
xmlbuilder2
Biblioteca JavaScript de construcción XML para generar documentos XML estructurados. Admite espacios de nombres, atributos, salida con prettyPrint, secciones CDATA, comentarios y más.
Node wrapping (root / item)
Convención de nomenclatura de nodos XML de la herramienta: los objetos JSON se envuelven en <root>, los elementos de arrays JSON en <item> repetidos.
prettyPrint
Modo de salida de xmlbuilder2 que añade automáticamente sangría y saltos de línea para mejorar la legibilidad.
SOAP (Simple Object Access Protocol)
Protocolo de comunicación de servicios web basado en XML. Los mensajes SOAP están envueltos en un sobre SOAP (espacio de nombres XML) y contienen un encabezado y un cuerpo (carga útil XML).
RSS / Atom feed
Formatos de distribución de contenido basados en XML. RSS 2.0 organiza el contenido en una estructura <rss><channel><item>.
Element vs attribute
Dos formas de representar datos en XML. Los elementos se envuelven en etiquetas, los atributos usan formato key='value'.
CDATA section
Sintaxis XML especial <![CDATA[...]]> para incrustar texto con caracteres especiales sin escape.
XML namespace
Mecanismo para evitar conflictos de nombres de elementos usando el atributo xmlns.
XPath
Lenguaje de consulta de rutas XML para localizar nodos en un documento XML.
XSLT
Lenguaje de transformación de hojas de estilo XML para convertir XML de un formato a otro.
tryFixJSON
Rutina incorporada de reparación JSON que maneja comas finales, comillas simples y otros errores comunes de sintaxis JSON.

Reglas de mapeo de tipos JSON a elementos XML

Reglas de mapeo de la herramienta de JSON a XML, basadas en xmlbuilder2:

Valor JSONEjemploElemento XMLRegla de mapeo
string"Alice"<name>Alice</name>Cadena como texto del elemento
number30<age>30</age>Número convertido a cadena
booleantrue<isActive>true</isActive>Booleano convertido a 'true'/'false'
nullnull<field></field> u omitidonull se convierte en elemento vacío
object{"a":1}<root><a>1</a></root>Objeto envuelto en <root>
array[{"a":1}]<root><item><a>1</a></item></root>Array envuelto en <item> repetidos
nested object{"user":{"name":"x"}}<root><user><name>x</name></user></root>Objetos anidados se generan recursivamente
nested array[[1,2]]<root><item><item>1</item><item>2</item></item></root>Arrays anidados se envuelven recursivamente

JSON vs XML comparación de formatos

Comparación de los dos formatos en diferentes dimensiones:

DimensiónJSONXMLNotas
Sintaxis{ } : [ ] concisa< > </> verbosaJSON más conciso; XML más verboso pero legible
TiposNativo number/bool/nullTodas cadenasJSON preserva tipos; XML necesita esquema
ArraysNativo [1,2,3]Elementos repetidos <i>JSON nativo; XML por convención
ComentariosNo soportado<!-- comentario -->Solo XML estándar
NamespacesNingunoxmlns soportadoXML evita conflictos
RendimientoMás rápidoMás lentoJSON ~3-5x más rápido
Casos de usoREST API, webSOAP, empresaJSON moderno; XML tradicional

Privacy & Security

Esta herramienta de JSON a XML se ejecuta completamente en tu navegador. El análisis JSON, la generación XML y el formateo con prettyPrint se ejecutan en JavaScript del lado del cliente (con la biblioteca xmlbuilder2); nada se envía a ningún servidor. Las cargas de archivos usan la API nativa FileReader y nunca pasan por un servicio intermedio. La herramienta no usa cookies de seguimiento y no recopila datos de entrada o uso. Todas las entradas y salidas se borran de la memoria en cuanto se cierra o recarga la página. Segura de usar con JSON que contenga datos comerciales confidenciales o respuestas de API internas.

Authoritative References