Conversor de XML a JSON
Convierte datos XML a JSON. Transforma respuestas de APIs XML antiguas, payloads SOAP o feeds RSS/Atom en JSON —los atributos van en @attributes, el texto en #text, los elementos repetidos se vuelven arrays— directo en tu navegador.
Consejos de uso
- Los elementos con atributos se agrupan en un objeto `@attributes`, separado del texto o los elementos hijos propios del elemento.
- Cuando un elemento mezcla atributos con elementos hijos o texto, la parte del texto se guarda bajo `#text`, así nunca se confunde con un valor de atributo.
- Los elementos hermanos que comparten el mismo nombre se agrupan automáticamente en un array: tres etiquetas `
- ` se convierten en un array de 3 elementos, mientras que una sola queda como un objeto simple.
- Un elemento vacío sin atributos, texto ni hijos (por ejemplo `
`) se convierte en `null`. - Los prefijos de espacio de nombres como `xmlns` no se separan: un elemento sigue con la clave `ns:tag`, prefijo incluido.
Preguntas frecuentes
A propósito — Por qué no existe una única forma "correcta" de convertir XML a JSON
A diferencia de la simple correspondencia fila-a-objeto entre CSV y JSON, no existe una convención universalmente aceptada para convertir entre XML y JSON. XML permite que atributos, nodos de texto y elementos hijos coexistan dentro de un mismo elemento, mientras que JSON solo tiene pares clave-valor simples, así que hay que elegir alguna convención en el momento de la conversión. Implementaciones importantes como xml2json, xml-js y org.json han adoptado cada una reglas distintas sobre cómo representar los atributos y cómo tratar el texto que coexiste con elementos hijos.
Aun así, los desarrolladores siguen encontrándose con XML con frecuencia. Las APIs web basadas en SOAP, integraciones de sistemas de décadas de antigüedad en finanzas, gobierno y salud, los feeds RSS/Atom y los archivos de diseño de Android son solo algunas de las áreas donde XML sigue siendo el formato estándar hoy. Existe una necesidad persistente de tomar datos extraídos de estos sistemas heredados y llevarlos a un flujo de herramientas moderno que solo entiende JSON —procesándolos con jq o manipulándolos como un objeto simple en JavaScript.
La convención `@attributes`/`#text` que usa esta herramienta es una elección práctica y común, no una notación cargada de símbolos. Los elementos hoja sin atributos se convierten directamente en su valor de texto, lo que mantiene legibles como JSON simple valores de configuración sencillos o un título de RSS, mientras que los elementos que sí tienen atributos se separan explícitamente, así que con solo mirar el resultado convertido se sabe exactamente qué valores eran originalmente atributos.