Saltar al contenido

Convertir XML a JSON

Convierte un documento XML en JSON con los atributos como claves @, los elementos repetidos como arrays y los números con su tipo. Lo procesa el analizador XML de tu navegador, en tu dispositivo.

Convertir a
Suelta un archivo XMLXML de hasta 100 MB · JSON, CSV, XLSX, XLS, ODS de hasta 500 MB
Elegir archivoProcesado en tu dispositivo, nunca se sube
Se ejecuta en tu navegador · sin subir archivosCómo funciona

Cómo usar XML a JSON

  1. 1

    Pega o suelta el XML

    Un archivo .xml, un feed RSS o Atom, una respuesta SOAP o cualquier texto XML; se respeta la codificación indicada en su declaración.

  2. 2

    Define la estructura del JSON

    Atributos como claves @, como claves normales o sin ellos; arrays solo para elementos repetidos o en todas partes; números con tipo o conservados como texto.

  3. 3

    Copia el JSON

    Con formato legible o compacto: cópialo al portapapeles o descarga el archivo .json.

Límites y Pro

Archivos XML de hasta 100 MB; XML pegado de cualquier tamaño que tu navegador pueda manejar.

Acerca de XML a JSON

XML a JSON sirve para cuando una API, un portal oficial o una integración antigua te entrega XML y tu código necesita JSON. El elemento raíz del documento se convierte en la única clave de primer nivel, cada elemento hijo pasa a ser una propiedad y un elemento que aparece varias veces bajo un mismo padre se convierte en un array, en el orden del documento.

Los atributos requieren una decisión, porque JSON no tiene algo equivalente. Por defecto se escriben como claves que empiezan por @: <price currency="UZS">125000</price> pasa a ser {"@currency": "UZS", "#text": 125000}. Así se distinguen los atributos de los elementos hijo y el JSON se puede volver a convertir en el mismo XML. Las claves normales dan objetos más cortos; omitir los atributos conviene en documentos que los usan solo para tareas internas.

Valores: con la detección de tipos activada, 42 y 3.5 pasan a ser números JSON y true/false se convierten en booleanos, pero todo lo que cambiaría al leerse como número se mantiene como cadena: códigos postales y números de cuenta con ceros a la izquierda, o números de más de 15 dígitos. Los elementos vacíos pasan a ser cadenas vacías.

Los espacios de nombres se conservan tal como están escritos (dc:title), o bien se pueden quitar los prefijos para obtener claves más limpias, lo que también elimina las declaraciones xmlns. «Usar siempre arrays» da a todos los elementos hijo la misma forma de array, algo práctico cuando unos registros tienen un autor y otros tienen tres.

No se conservan los comentarios, las instrucciones de procesamiento ni el DOCTYPE; el texto mezclado con etiquetas en línea, como en los párrafos XHTML, se une en una sola cadena.

Privacidad

El XML se analiza en un proceso en segundo plano de esta página, sin ninguna petición de red; no se descarga ningún DTD ni entidad externa y el documento nunca sale de tu dispositivo.

XML a JSON: preguntas frecuentes

¿Qué significa #text en el JSON?
Cuando un elemento tiene atributos o elementos hijo y además texto propio, ese texto necesita su propia clave; #text es la convención más habitual. <title lang="en">Guide</title> pasa a ser {"@lang": "en", "#text": "Guide"}. En cambio, un elemento que solo contiene texto se convierte en un valor simple, así que <title>Guide</title> es simplemente "title": "Guide".
¿Los números se convierten o se dejan como cadenas?
Con «Detectar números y true/false» activado, los valores que son claramente números o booleanos reciben tipos JSON. Los valores con ceros a la izquierda, como 007 o un código postal, y los números de más de 15 dígitos se mantienen como cadenas, porque convertirlos en números los alteraría. Desactiva la detección para conservar todos los valores exactamente como texto.
¿Cómo se tratan los espacios de nombres como soap: o dc:?
Por defecto los prefijos siguen formando parte de la clave, así que dc:title es la clave "dc:title" y las declaraciones xmlns aparecen como atributos @xmlns. Activa «Quitar prefijos de espacio de nombres» para obtener title y omitir las declaraciones. Dos espacios de nombres distintos con el mismo nombre local compartirían entonces una clave, así que conserva los prefijos cuando eso importe.
¿Puedo volver a convertir el JSON en XML después?
Sí. Cambia el destino a XML en la página de JSON a XML: las claves que empiezan por @ pasan a ser atributos, #text pasa a ser el texto del elemento y los arrays se convierten en elementos repetidos. El orden de los elementos dentro de un padre puede cambiar si había nombres de hijo intercalados, y los comentarios desaparecen, pero los datos sobreviven al viaje de ida y vuelta.
¿Por qué me aparece un error en lugar del JSON?
El XML no está bien formado, y el mensaje indica la línea y la columna del primer problema. Las causas habituales son un & que debería ser &amp;, una etiqueta cerrada en el orden equivocado, un valor de atributo sin comillas o entidades HTML como &nbsp; que XML no define. Corrige ese punto y vuelve a pegar el contenido.

Otras tareas con esta herramienta