Cómo convertir XML a JSON: atributos, arrays y tipos explicados
Muchos sistemas antiguos, feeds y archivos de empresa siguen hablando XML, mientras que la mayoría de apps web, API y código JavaScript esperan JSON. Convertir XML a JSON te permite usar esos datos en herramientas modernas. Pero los dos formatos no encajan uno a uno: XML tiene atributos, texto mixto y elementos repetidos, y JSON tiene objetos, arrays, números y true/false.
Esta guía explica qué hace el conversor gratuito XML a JSON con cada parte de tu XML y qué opciones elegir para que el JSON encaje con tu código.
Un ejemplo
Un pequeño catálogo con dos libros:
<catalog>
<book id="bk101">
<title>XML Basics</title>
<price>29.95</price>
<available>true</available>
</book>
<book id="bk102">
<title lang="en">JSON in Practice</title>
<price>19.50</price>
<available>false</available>
</book>
</catalog>Con las opciones por defecto, queda así:
{
"catalog": {
"book": [
{
"@id": "bk101",
"title": "XML Basics",
"price": 29.95,
"available": true
},
{
"@id": "bk102",
"title": { "@lang": "en", "#text": "JSON in Practice" },
"price": 19.50,
"available": false
}
]
}
}Cómo se convierte cada parte
- Los elementos pasan a ser claves.
<title>se convierte en"title", y su texto en el valor. - Los atributos llevan un prefijo.
id="bk101"se convierte en"@id", para distinguir atributos de elementos hijos. - El texto junto a atributos va en "#text". El segundo título tiene un atributo y texto, así que se convierte en un objeto con
"@lang"y"#text". - Los elementos repetidos pasan a ser arrays. Dos elementos
<book>forman una lista. Todos los libros tienen así la misma forma, lo que facilita recorrer el JSON. - Los números y true/false pasan a ser valores JSON.
29.95es un número ytrueun booleano. Los números conservan sus dígitos exactos (19.50sigue siendo19.50), y valores como007siguen siendo texto, así que los códigos postales y los ID no pierden sus ceros. - Otros detalles: las secciones CDATA pasan a texto normal, los elementos vacíos a
null, los comentarios se omiten y los nombres conservan su prefijo de espacio de nombres (comodc:title).
Cómo convertir XML a JSON, paso a paso
- Abre XML a JSON y pega tu XML en Entrada XML, haz clic en Abrir archivo o suelta un archivo .xml en el recuadro. Ejemplo carga uno de muestra.
- Elige las opciones que se explican más abajo. Las de por defecto sirven para casi todos los archivos.
- Haz clic en Convertir a JSON y copia o descarga el resultado.
Si el XML tiene un error, como una etiqueta sin cerrar, el conversor muestra la línea y la columna. Consulta cómo formatear y validar XML para ver los errores más comunes.
Cómo elegir las opciones
Atributos
- @id (por defecto): el estilo más habitual y el que entiende JSON a XML, así que puedes volver a convertir.
- _id: para herramientas a las que no les gusta el signo @ en los nombres.
- id (sin prefijo): el JSON más limpio, pero un atributo y un elemento hijo con el mismo nombre chocarían.
- Omitir: elimina los atributos, cuando solo necesitas el texto.
Arrays: el problema del elemento único
Con Cuando un elemento se repite (por defecto), un catálogo con un solo libro da un objeto, no una lista:
{ "catalog": { "book": { "@id": "bk101", "title": "XML Basics" } } }El código que espera una lista falla cuando un archivo trae un solo elemento. Si eso importa, elige Cada elemento en un array. Todos los elementos hijos pasan a ser listas, aunque solo haya uno:
{ "catalog": { "book": [ { "@id": "bk101", "title": ["XML Basics"] } ] } }Es más largo, pero la forma nunca cambia de un archivo a otro.
Otras opciones
- Números y true/false como valores JSON: desmárcala para mantener todos los valores como texto, tal como están en el XML.
- Conservar el elemento raíz: desmárcala para quitar el nivel exterior
"catalog"y empezar directamente por su contenido. - Quitar espacios alrededor del texto: elimina los saltos de línea y la sangría alrededor de los valores. Desmárcala solo si los espacios forman parte de tus datos.
- Sangría: 2 espacios, 4 espacios, Tabulador o una línea para que el JSON ocupe lo mínimo.
Más herramientas XML
- XML a CSV: abre registros XML en Excel o Google Sheets.
- Probador de XPath: selecciona exactamente los elementos que necesitas antes de convertir.
- Formateador de XML y validador de XML: haz el XML legible y revísalo.
- ¿Necesitas una hoja de cálculo a partir de JSON? Lee cómo convertir JSON a CSV.
¿Se sube mi XML?
No. La conversión se hace en tu navegador, así que tus datos nunca salen de tu dispositivo. Nuestro servidor solo registra que hubo una conversión, para el límite diario.
Preguntas frecuentes
¿Puedo convertir el JSON de vuelta a XML?
Sí, con JSON a XML. Mantén el estilo de atributos @id para que los atributos vuelvan como atributos.
¿Por qué el precio es un número y el código postal texto?
Los valores con aspecto de número normal pasan a ser números. Los que llevan ceros a la izquierda, como 007 o 01234, siguen siendo texto para no perder nada.
¿Se conserva el orden de los elementos?
Sí, en general. Las claves aparecen en el orden en que aparece por primera vez cada nombre de elemento. Los elementos con el mismo nombre se agrupan en una lista, en su orden original.
Más artículos
- Cómo convertir JSON a CSV para Excel y Google Sheets
- Cómo convertir imágenes a PDF: un solo archivo y del tamaño justo
- ¿Qué es el marcado schema? Una guía sencilla de JSON-LD
- Cómo crear un código QR que funcione (gratis, sin caducidad ni registro)
- Cómo formatear y validar XML: bien formado frente a válido