
Convertidor JSON a XML — Cuando y como transformar formatos de datos
📷 Photo by Pixabay / PexelsConvertidor JSON a XML — Cuando y como transformar formatos de datos
Aprende cuando necesitas convertir JSON a XML, como funciona la transformacion internamente y los casos extremos que hacen tropezar a los desarrolladores.
Si trabajas en desarrollo de software el tiempo suficiente, eventualmente encontrarás un sistema que solo habla XML. Quizás es una API SOAP de un banco. Quizás es una integración ERP empresarial. Quizás es un feed de datos gubernamental construido en 2003 que no ha cambiado desde entonces. Sin importar la fuente, tendrás datos en formato JSON —porque eso es lo que produce todo lo moderno— y los necesitarás en XML.
Para eso es el convertidor JSON a XML. Pega tu JSON, obtén XML limpio del otro lado. Pero entender lo que realmente ocurre durante la conversión, y dónde puede salir mal, te ahorrará tiempo de depuración cuando la salida no se vea bien.
Por qué JSON y XML coexisten todavía
XML (eXtensible Markup Language) fue introducido en 1998 como estándar para datos estructurados. A finales de los 90 y en los 2000, se convirtió en la lengua franca del software empresarial: servicios web SOAP, archivos de configuración, formatos de documentos (Office XML, SVG, XHTML), e intercambio de datos entre grandes sistemas, todos usaban XML.
JSON (JavaScript Object Notation) surgió como alternativa más simple, formalmente especificado por Douglas Crockford en 2001. Era nativo de JavaScript, significativamente menos verboso que XML, y mucho más fácil de leer y escribir a mano. A medida que las APIs REST se convirtieron en la norma, JSON se convirtió en el estándar para las respuestas de API.
Pero los sistemas construidos sobre XML no desaparecieron. Los mainframes todavía funcionan. Los sistemas ERP de SAP y Oracle todavía usan XML. Los servicios web SOAP están vivos en banca, seguros, salud y gobierno. XSLT, SVG y RSS son basados en XML y no van a ningún lado.
Escenarios reales donde necesitas JSON a XML
Integraciones de API SOAP: El caso clásico. SOAP requiere cuerpos de solicitud en formato XML. Si tu aplicación recibe datos de una API REST en JSON, necesitas convertirlos a XML antes de enviarlos a un endpoint SOAP.
Sistemas ERP y CRM empresariales: SAP, Oracle y las integraciones más antiguas de Salesforce a menudo exponen APIs basadas en XML o esperan archivos de datos en formato XML.
Configuraciones de build Maven y Ant: Las herramientas de build de Java usan XML. Si estás generando o modificando estas configuraciones programáticamente desde datos JSON, necesitas conversión.
Feeds RSS y Atom: Si estás construyendo un feed desde una API JSON o base de datos, necesitas generar XML que se ajuste a la especificación RSS o Atom.
Presentaciones regulatorias: Las autoridades fiscales, agencias estadísticas y organismos reguladores en muchos países todavía requieren presentaciones de datos en formato XML.
Cómo funciona realmente la conversión
El concepto básico es sencillo: los pares clave-valor JSON se mapean a elementos XML, los objetos JSON se convierten en elementos padre con elementos hijo, y los valores se convierten en contenido de texto.
Objetos simples
Un objeto JSON simple como este:
{
"name": "Alice",
"email": "alice@example.com",
"age": 30
}
Se convierte en XML como este:
<root>
<name>Alice</name>
<email>alice@example.com</email>
<age>30</age>
</root>
Se agrega un elemento raíz envolvente porque XML requiere exactamente un nodo raíz.
Objetos anidados
El anidamiento funciona naturalmente:
{
"user": {
"name": "Bob",
"address": {
"city": "Portland",
"country": "US"
}
}
}
Se convierte en:
<root>
<user>
<name>Bob</name>
<address>
<city>Portland</city>
<country>US</country>
</address>
</user>
</root>
Tipos de datos
JSON tiene tipos de datos explícitos. XML es solo texto. Esto significa que "active": true se convierte en <active>true</active>.
La parte complicada: arrays
Los arrays son donde la conversión JSON a XML se complica, porque XML no tiene un concepto nativo de array. El enfoque más común usa un wrapper genérico:
{
"colors": ["red", "green", "blue"]
}
Puede convertirse en:
<root>
<colors>
<item>red</item>
<item>green</item>
<item>blue</item>
</colors>
</root>
No hay una respuesta universalmente "correcta" — depende de lo que espere el sistema receptor.
Dificultades comunes y casos extremos
Nombres de etiquetas XML inválidos
Los nombres de elementos XML tienen reglas estrictas: deben comenzar con una letra o guión bajo, no pueden contener espacios, y no pueden comenzar con "xml". Las claves JSON, por el contrario, pueden ser casi cualquier cosa.
Problemas cuando las claves JSON son:
- Números o comienzan con números:
"1stItem"es una etiqueta XML inválida - Contienen espacios:
"first name"no puede convertirse en<first name> - Contienen caracteres especiales: deben eliminarse o reemplazarse
Valores null de JSON
null en JSON no tiene un equivalente XML directo. Convenciones comunes:
- Omitir el elemento completamente
- Incluir un elemento vacío:
<fieldName/> - Usar un atributo
xsi:nil="true"
El problema del elemento raíz
Los objetos JSON pueden tener múltiples claves de nivel superior. XML requiere exactamente un elemento raíz. Por lo tanto, un objeto JSON con múltiples claves necesita un elemento raíz envolvente en XML.
Atributos XML vs elementos hijo
XML soporta un concepto que JSON simplemente no tiene: atributos en los elementos. Para JSON a XML, esta distinción generalmente se ignora y todo se convierte en elementos hijo. Si necesitas producir XML con atributos, necesitarás lógica adicional.
JSON vs XML: saber cuándo usar cada uno
JSON es mejor cuando:
- Construyes APIs REST
- Almacenas configuración en archivos que los desarrolladores leerán y escribirán
- Transmites datos entre servicios web y navegadores
- Trabajas en entornos JavaScript/TypeScript
XML es mejor cuando:
- El sistema destino lo requiere (SOAP, muchas APIs empresariales)
- Necesitas estructura de documento (contenido mixto)
- Necesitas adjuntar metadatos a campos individuales (via atributos)
- Generas SVG, RSS, XHTML u otros estándares basados en XML
Usando el convertidor
El convertidor JSON a XML maneja los casos comunes: objetos simples, estructuras anidadas, arrays y tipos de datos básicos. Pega tu JSON y genera una salida XML formateada que puedes copiar o descargar.
Para integraciones de producción, siempre valida el XML de salida contra el esquema destino (XSD) si hay uno disponible. Para conversiones exploratorias o de una sola vez, el convertidor lo maneja en segundos sin necesidad de escribir código ni instalar nada.