XML a JSON
Convierte documentos XML en JSON limpio y predecible
¿Qué es un conversor de XML a JSON?
XML fue el formato de datos por defecto de los años 2000 y sobrevive en fuentes RSS, APIs bancarias, servicios SOAP y archivos de configuración heredados. JavaScript, Python y Go modernos leen JSON con mucha más naturalidad. Un conversor de XML a JSON traduce un documento a objetos simples con un esquema predecible: cada elemento se vuelve un objeto, los atributos se prefijan con "@@" para que el atributo "id" nunca choque con un elemento hijo llamado "id", el contenido de texto vive bajo "@text" y los hermanos repetidos colapsan en arrays.
Qué puede hacer
- Analizar elementos anidados en objetos JSON
- Separar atributos (prefijo @@) de texto (@text) de hijos
- Agrupar hermanos repetidos en arrays automáticamente
- Manejar secciones CDATA, comentarios, declaraciones y etiquetas autocerradas
- Reportar etiquetas mal emparejadas o sin cerrar con un error claro
- Formatear el JSON con sangría legible
Cuándo usarlo
- Leer feeds RSS/Atom o respuestas tipo SOAP
- Migrar configuración XML a canalizaciones basadas en JSON
- Inspeccionar qué devuelve realmente una API XML heredada
- Construir fixtures JSON de prueba a partir de datos XML de referencia
Privacidad: la conversión ocurre por completo en tu navegador; nada de lo que pegues se sube jamás.
La correspondencia que utiliza este conversor
- Los atributos XML se convierten en claves con prefijo
@(price currency="EUR"→{"@currency":"EUR"}), para evitar colisiones con los elementos secundarios. - Un elemento que combina texto e hijos conserva su texto bajo la clave
#text; un elemento que contiene únicamente texto se mapea directamente a una cadena simple. - Los elementos hermanos repetidos se agrupan en matrices; la declaración XML, los comentarios y las instrucciones de procesamiento se descartan.
Los atributos y los nodos de texto requieren una convención
Atributos y texto, nunca mezclados
Los atributos se vuelven claves con prefijo "@@id" y el texto vive bajo "@text", así un atributo y un elemento con el mismo nombre jamás se sobrescriben.
Las listas siguen siendo listas
Los hermanos repetidos colapsan automáticamente en un array JSON: un catálogo de cinco libros se vuelve un array de cinco objetos, no un libro sobrescrito.
Tolerante con XML real
CDATA, comentarios, DOCTYPE y etiquetas autocerradas se analizan limpiamente, mientras que XML realmente mal formado falla con un mensaje descriptivo.
Preguntas frecuentes
¿Cómo se representan los atributos?⌄
Los atributos se vuelven claves con prefijo "@@", p. ej. <book id="5"> se convierte en {"@@id":"5"}. Esto evita la clásica colisión entre un atributo llamado "id" y un elemento hijo del mismo nombre.
¿Qué pasa con los elementos repetidos?⌄
Los hermanos repetidos con el mismo nombre se agrupan automáticamente en un array JSON. Una única aparición sigue siendo un objeto; varias se vuelven array, y ambos casos se leen de forma intuitiva.
¿Se sube mi XML a algún lugar?⌄
No. Todo se ejecuta en tu navegador con JavaScript puro; nada se transmite ni se almacena.
¿Dónde fue a parar mi atributo en la salida JSON?⌄
Busque la clave con prefijo @ en el mismo objeto que su elemento. Si solo ve #text, el elemento tenía atributos Y contenido; si esperaba un atributo y no encuentra ninguno, este se encontraba en un nodo padre: expanda el árbol un nivel hacia arriba.