Dos estructuras, no dos grafías
JSON dispone de objetos, arreglos, cadenas, números, booleanos y null. XML contiene elementos con nombre, atributos, nodos de texto y un árbol documental ordenado. No existe una regla universal y sin pérdidas que transforme cualquier valor JSON en cualquier documento XML. Un conversor debe decidir cómo representar la raíz, los atributos y los hijos repetidos. MultiVerto utiliza un objeto JSON con una sola propiedad como raíz del documento XML. El nombre de esa propiedad pasa a ser un elemento. El objeto especial @attributes contiene atributos y los arreglos generan hijos repetidos. Son convenciones de esta herramienta, no nombres definidos por el estándar XML. Conoce el esquema esperado antes de aplicar este mapeo a datos reales.
Sigue un registro de pedido
En el ejemplo integrado, order tiene @attributes con id igual al texto 7, un arreglo item con pen y book, y count igual al número 2. La herramienta de JSON a XML crea una raíz order, el atributo id, dos elementos item y un elemento count. La herramienta inversa puede leer este documento sencillo. Agrupa los elementos item repetidos en un arreglo y guarda el atributo en @attributes. Sin embargo, el texto de un elemento se interpreta como texto: count, que era el número JSON 2, vuelve como cadena 2. El dígito visible coincide, pero el tipo ya no. Compara las estructuras de datos analizadas y no solamente el aspecto de la página.
- JSON: count es número 2; item es arreglo
- XML: count es texto; aparecen dos item
- Vuelta a JSON: count es cadena 2; revisar esquema
Dónde cambia la información
En XML, atributos y elementos hijos son distintos; en un objeto JSON todo suele aparecer como propiedad hasta que una convención reserva ciertos nombres. Los nombres repetidos pueden transformarse en arreglos, pero un solo elemento puede convertirse en escalar y sorprender a un programa que espera siempre un arreglo. JSON null, la precisión numérica y los booleanos requieren reglas explícitas porque el texto XML por sí solo no revela esos tipos. El orden de elementos también puede importar a un consumidor XML aunque la aplicación trate las propiedades JSON como no ordenadas. MultiVerto rechaza deliberadamente documentos XML con texto significativo mezclado con elementos hijos y no admite todas las construcciones XML.
Diseña la correspondencia primero
Si conectas dos servicios, consigue un documento de ejemplo y el esquema del receptor. Decide si cada campo debe ser atributo o elemento y cómo representar arreglos. Define cómo interpretará el receptor número, booleano, cadena vacía y campo ausente. Si el origen es XML, comprueba espacios de nombres y contenido mixto antes de usar un mapeador ligero; puede hacer falta un analizador XML especializado. Si el origen es JSON, verifica que la raíz sea un solo objeto con nombre y que sus claves sean nombres de elemento válidos para esta herramienta. Prueba un caso representativo en ambos sentidos y valida el resultado en el sistema de destino.
Comprueba la vuelta con intención
Copia la salida de ejemplo al conversor enlazado de XML a JSON y compara los datos reconstruidos con el JSON inicial. Fíjate en tipos, elementos repetidos, ubicación de atributos y valores vacíos. Deja el arreglo item con un solo elemento y comprueba si la aplicación receptora sigue esperando un arreglo. Prueba un count con cero inicial solo si tu esquema lo permite; el significado de texto y número no es el mismo. Conserva el original junto a la versión convertida. Formatear XML facilita revisar su anidamiento, pero no arregla un mapeo equivocado. Analizarlo sin errores confirma sintaxis, no el significado de negocio esperado.