Acerca de XML ↔ JSON
Sobres SOAP, fragmentos sitemap y APIs legacy aún hablan XML; depuradores front y pipelines jq prefieren JSON. Empieza con { o [ → XML con elemento raíz; empieza con < → JSON anidado con claves por nombre de etiqueta.
Los nombres de etiqueta son claves JSON; atributos y nodos de texto se conservan en el árbol para inspeccionar estructura sin perder metadatos. JSON de vuelta a XML recibe wrapper raíz y etiquetas indentadas para diffs rápidos o pegado en herramientas XML-first.
Qué puedes hacer
Dirección automática
JSON pasa a XML indentado con elemento raíz; XML pasa a JSON anidado con claves por tag. La dirección sigue el primer carácter que no sea espacio en blanco.
Etiquetas, atributos y texto
- Nombres de elemento → claves de objeto JSON; contenido mixto se estructura en campos, no solo un string, cuando hay atributos.
- Atributos quedan en el mismo objeto del nodo para leer id, xmlns o xsi:type sin un paso XPath aparte.
- Etiquetas hermanas repetidas colapsan en arrays JSON bajo una clave.
JSON → XML: nombres
Las claves JSON deben volverse nombres de etiqueta XML válidos: espacios y símbolos se sanitizan y claves solo numéricas pueden llevar prefijo. Valida contra XSD o WSDL después de convertir.
Límites
- Sin manejo avanzado de namespaces, preservación CDATA o reglas de mixed-content más allá de nodos de texto simples.
- No es un data binder con schema: arrays vs objetos únicos siguen heurísticas, no tu choice de XSD.
- Pegados enormes deben caber en memoria — usa CLI con streaming para archivos de varios MB.
Casos de uso
APIs SOAP / XML legacy
Inspecciona un sobre SOAP como JSON en DevTools o scripts Node, extrae campos del Body y compara respuestas entre entornos sin mantener un stack XML completo en cada repo.
Config y sitemap
Convierte un sitemap o fragmento Spring XML a JSON para herramientas diff, o al revés cuando un sample JSON debe volverse XML para un gateway viejo.
XML estilo plist móvil
Convierte XML simple tipo property-list cuando solo tienes formateadores JSON abiertos — revisa a mano semántica de booleanos y fechas después.
Triage de logs
Pega payloads XML de error de colas de mensajes a JSON para filtros jq, transforms en Grafana o adjuntos de ticket legibles.
Preguntas frecuentes
- ¿Por qué mi JSON no queda XML válido tras convertir?
- Las claves JSON deben ser nombres de elemento: espacios y caracteres especiales se sanitizan. Claves solo numéricas pueden llevar prefijo para XML bien formado.
- ¿XML → JSON conserva atributos?
- Sí: atributos del elemento quedan en el JSON junto con hijos y texto, para ver el nodo completo, no solo innerText.
- ¿Cómo se manejan etiquetas XML repetidas?
- La primera ocurrencia es un valor único; hermanos con el mismo nombre pasan a un array JSON bajo esa clave.
- ¿Puedo convertir XML enorme?
- El navegador debe parsear todo el pegado en memoria. Para archivos multi‑MB usa herramientas CLI con streaming; esta página sirve para mensajes, configs y extractos de log.
- ¿Cómo convierto XML a JSON en línea?
- Pega XML que empiece con < y pulsa Convertir. Etiquetas anidadas son objetos; nombres duplicados, arrays. Copia cuando el árbol coincida con lo esperado y valida campos obligatorios contra tu contrato.
- ¿Los namespaces XML hacen round-trip?
- Prefijos xmlns avanzados y tipos xsi no se preservan como metadatos de primera clase. En servicios WSDL-heavy trata la salida como vista de debug y mantén XML canónico en el wire.