Generar XML válido a partir de JSON
Muchos sistemas todavía exigen XML: pasarelas de pago, portales de la administración, estándares de factura electrónica, feeds y software empresarial antiguo. Convertir JSON a XML parece sencillo, pero el XML tiene reglas que el JSON no tiene: un único elemento raíz, nombres que no pueden empezar por un dígito ni contener espacios, y una distinción clara entre atributos y elementos hijos.
Este conversor aplica esas reglas por ti. Añade una declaración XML, envuelve los datos en un elemento raíz cuando hace falta, repite elementos para los arrays, convierte en atributos las claves que empiezan por @ y corrige los nombres que el XML rechazaría.
JSON frente a XML: comparación rápida
| Característica | JSON | XML |
|---|---|---|
| Nombre completo | JavaScript Object Notation | Extensible Markup Language |
| Tipo | Datos jerárquicos | Datos jerárquicos con marcado |
| Año de creación | Principios de los 2000 (RFC 4627 en 2006) | 1998 |
| Creado por | Douglas Crockford; hoy ECMA-404 y RFC 8259 | W3C |
| Estructura | Objetos y arrays anidados | Elementos anidados con atributos |
| Comentarios | No | Sí, con <!-- --> |
| Tipos de datos | Cadena, número, booleano, null, objeto, array | Texto, salvo que un esquema XSD defina tipos |
| Ideal para | APIs, aplicaciones web y ajustes de apps | Intercambio de datos empresariales, feeds y archivos ofimáticos |
| Compatibilidad | Todos los lenguajes de programación | Todos los lenguajes; muy usado en sistemas empresariales |
| Tipo MIME | application/json | application/xml |
Cómo convertir JSON a XML
Paso 1: Elige un archivo JSON
Suelta un archivo .json en el conversor.
Paso 2: XML está preseleccionado
Deja XML como destino.
Paso 3: Convierte
El JSON se traduce a elementos y atributos y se formatea con sangría de dos espacios.
Paso 4: Descarga el XML
Guarda el archivo y valídalo con el esquema del sistema receptor si lo tiene.
Reglas de conversión
Raíz única garantizada
Un objeto con una sola clave de nivel superior la usa como raíz; todo lo demás se envuelve en <root>.
Arrays como elementos repetidos
{"tag": ["a", "b"]} se convierte en dos elementos <tag>.
Atributos desde claves @
{"@id": 5} se convierte en id="5" en el elemento padre.
Nombres seguros
Los caracteres no válidos pasan a guiones bajos y los nombres que empiezan por un dígito reciben un guion bajo inicial.
Cuándo hace falta JSON a XML
Integraciones con API XML. Prepara cuerpos de petición para servicios SOAP o basados en XML.
Feeds y sitemaps. Genera estructuras XML a partir de datos JSON.
Factura electrónica y declaraciones. Redacta un XML que luego ajustarás al esquema requerido.
Importaciones en sistemas antiguos. Alimenta programas que solo leen XML.
Cómo se elige el elemento raíz
Si tu JSON es un objeto con exactamente una clave, como { "catalogo": { ... } }, esa clave pasa a ser el elemento raíz. Si el objeto tiene varias claves de nivel superior, o su único valor es un array, todo se envuelve en un elemento <root> para que el documento sea válido.
Un array de nivel superior se convierte en <root> con un elemento <item> por entrada. Cambia root e item en tu editor si el sistema de destino espera otros nombres.
- { "catalogo": {...} } da <catalogo> como raíz.
- { "a": 1, "b": 2 } da <root><a>1</a><b>2</b></root>.
- [ {...}, {...} ] da <root><item>...</item></root>.
Ida y vuelta con XML a JSON
El prefijo @ para atributos y #text para el texto de un elemento coinciden con lo que genera el conversor de XML a JSON, así que puedes convertir XML a JSON, editar los datos y volver a convertirlos.
Los valores null se convierten en elementos vacíos autocerrados. Los caracteres especiales como & y < en los valores se escapan automáticamente, así que el resultado se analiza sin errores.
Consejos para JSON a XML
- Usa una única clave de nivel superior con el nombre del elemento raíz que espera tu sistema.
- Marca los atributos con @ en tu JSON antes de convertir.
- Valida el resultado con el XSD si te lo proporcionan.
- Evita los arrays de arrays; el XML no tiene una forma natural de expresarlos.
Preguntas sobre la conversión de JSON a XML
¿El resultado incluye una declaración XML?
Sí: se añade <?xml version="1.0" encoding="UTF-8"?> al principio.
¿Cómo creo atributos?
Pon el prefijo @ a la clave, por ejemplo { "libro": { "@id": "42", "titulo": "Dune" } }.
¿Qué pasa con los arrays?
Cada elemento se convierte en un elemento repetido con el nombre de la clave del array.
¿Y si una clave no es un nombre XML válido?
Los caracteres no válidos se sustituyen por guiones bajos, y los nombres que empiezan por un dígito reciben un guion bajo como prefijo.
¿El XML tiene sangría?
Sí, con dos espacios por nivel para que sea legible.
¿Se sube mi JSON?
No. El XML se genera en tu navegador.