Conversor de JSON a XML

Pegue un objeto JSON y obtenga su XML. Las claves que empiezan por @ pasan a atributos, #text se convierte en el texto de un elemento, y un array pasa a ser el mismo elemento repetido. Nada de lo que pega sale de su navegador.

Gratuita Funciona en su navegador Revisada: martes, 10 de noviembre de 2026

Un objeto con un miembro: su nombre es el elemento raíz.

Sangría

La primera línea, <?xml version="1.0" encoding="UTF-8"?>.

Resultado

XML — Cópielo, o descárguelo como converted.xml.
Elementos — Cuántos elementos se escribieron, incluido el raíz.
XML

Esta herramienta funciona en su navegador. Lo que escribe no se envía a nosotros.

Cómo se usa

  1. Pegue el JSON en JSON. Su único miembro de nivel superior pasa a ser el elemento raíz.
  2. Use el prefijo @ para los atributos, como @id, y #text para el texto de un elemento.
  3. Elija una Sangría, o Sin saltos de línea (minificado) para el XML más corto.
  4. Copie el XML, o descárguelo como converted.xml.

La asignación, regla por regla

XML tiene elementos y atributos; JSON tiene objetos, arrays y valores. La asignación une unos y otros en una dirección. El nivel superior es un objeto con un miembro: su nombre es el elemento raíz. Un objeto pasa a ser un elemento. Un miembro cuyo nombre empieza por @ pasa a ser un atributo, y un miembro llamado #text pasa a ser el texto del elemento. Cualquier otro miembro pasa a ser un elemento hijo con ese nombre.

Un array da un elemento hijo por cada elemento del array, todos con el nombre del array, así que una lista de libros se escribe como elementos book repetidos. Una cadena, un número o true o false pasan a ser texto. null, y un objeto vacío, pasan a ser un elemento vacío. Un array vacío no tiene forma en XML y se deja fuera.

  • Un nombre debe ser un nombre XML: una clave como first name, con un espacio, no puede escribirse como nombre de elemento.
  • Un array dentro de un array se rechaza, porque no hay un nombre de elemento para sus elementos.
  • El texto de un número se escribe como lo escribe JavaScript, así que un número con más de 15 o 16 cifras significativas puede perder cifras, como ocurre al leer JSON.

Lo que la asignación no puede conservar

XML no tiene tipos, así que la diferencia entre el número 12 y el texto "12" se pierde al volver; el conversor de XML a JSON lee como número un texto que parece un número, salvo que se desactive ese tipado. Un objeto vacío y null se ven igual en XML, y un array con un solo elemento vuelve como ese elemento. Estos son los límites de la asignación, no errores de la herramienta.

Los comentarios y las instrucciones de procesamiento no se escriben, porque JSON no tiene dónde guardarlos. Un texto dentro de un elemento se escapa, así que &, < y > se quedan como texto en el XML.

Ejemplo resuelto: el catálogo por defecto

El JSON por defecto tiene un miembro, catalog. Su @version pasa a ser el atributo version del elemento catalog, y su array book se convierte en dos elementos book. Cada libro toma su @id como atributo id, y sus claves title, price e inStock pasan a ser elementos hijos. El price null del segundo libro pasa a ser el elemento vacío price.

Con dos espacios y la declaración, la salida tiene ocho elementos: el catalog, dos book, y tres hijos del primer libro y dos del segundo. El recuento muestra 8.

Preguntas frecuentes

¿Cómo escribo un atributo en JSON?

Dé a la clave un prefijo @. El miembro "@id": "1" pasa a ser id="1" en el elemento que lo contiene. Los valores de atributo deben ser texto, números o true o false, no objetos ni arrays.

¿Por qué mi array se convierte en varios elementos con el mismo nombre?

XML no tiene arrays. Cada elemento del array pasa a ser un elemento con el nombre del array, en el mismo orden, que es la forma habitual en que XML enumera cosas repetidas, como libros o artículos.

¿Por qué recibo un error sobre el nivel superior?

El XML necesita exactamente un elemento raíz. El JSON debe ser un objeto con un solo miembro, como {"catalog": {...}}; una lista o varios miembros en el nivel superior no pueden ser un solo documento.

¿Por qué se rechaza una clave con un espacio?

Los nombres de elemento en XML no pueden contener espacios. Cambie la clave, por ejemplo a first-name o firstName, antes de convertir.

¿Se envía mi JSON a algún servidor?

No. La conversión se hace en su navegador. Nada de lo que pega se envía a nuestro servidor ni se guarda allí.

Fuentes

Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.

Usamos cookies necesarias para que el sitio funcione. Si usted lo acepta, Google también usa cookies publicitarias para mostrar anuncios personalizados. Si las rechaza, seguirá viendo anuncios, pero no estarán personalizados.