XML to JSON
Convierte XML a JSON con @atributos, #text y arrays para etiquetas repetidas
Acerca de XML to JSON
Analiza el XML con el DOMParser integrado en tu navegador y lo convierte a JSON: los atributos pasan a claves @nombre, los elementos hermanos repetidos se agrupan en arrays y el texto va en #text cuando el elemento también tiene atributos o hijos. Los valores quedan como cadenas salvo que actives la conversión de números y booleanos. Los comentarios se descartan y el texto se recorta, así que funciona mejor con feeds de datos, respuestas SOAP y archivos de configuración que con documentos de texto.
Categoría: Conversores.
Preguntas frecuentes
¿Cómo se convierten los atributos, el texto y los elementos repetidos?
▾
Cada atributo se convierte en una clave con el prefijo @, como @id, y los prefijos de espacio de nombres se mantienen en los nombres, así que obtienes claves como soap:Body y @xmlns:soap. Un elemento que solo tiene texto se convierte en una cadena; el texto junto a atributos o elementos hijos va en #text, y los hermanos con el mismo nombre se agrupan en un array.
¿Por qué los números y booleanos aparecen como cadenas en el JSON?
▾
XML no tiene tipos de datos, así que por defecto cada valor se conserva como texto y nada cambia. Con Parse numbers and booleans activado, true, false y los números que se leen de vuelta igual, como 42 o -3.5, pasan a ser valores JSON, mientras que 007, 1.50 y los enteros muy largos siguen como cadenas para conservar su texto exacto.
¿Qué hace Always use arrays?
▾
Envuelve el valor de cada elemento hijo en un array, aunque el elemento aparezca una sola vez, para que el código que recorre los elementos no falle con una lista de un solo elemento. El elemento raíz nunca se envuelve.
¿Qué se pierde en la conversión?
▾
Se descartan los comentarios, las instrucciones de procesamiento y la declaración XML, se recortan los espacios al inicio y al final del texto, y no se conserva el orden entre hermanos con nombres distintos. En contenido mixto como <p>Hola <b>mundo</b>!</p>, los fragmentos de texto se unen en un solo valor #text. Las entidades HTML como se rechazan porque XML solo predefine cinco.