XML y JSON hablan de lo mismo —datos con estructura— en dos dialectos distintos, y convertir a mano un XML con etiquetas repetidas y atributos en un JSON limpio es lento y propenso a errores. Este conversor pega tu XML, lo analiza en tu propio navegador y devuelve el JSON formateado: los elementos repetidos se agrupan en arrays, los atributos se conservan con prefijo @ y el texto de cada nodo queda accesible. Sin subir el documento a ningún servidor, con avisos en español si el XML está mal formado y botón de descarga directa.
Qué ganas al pasar de XML a JSON
JSON es el formato que entienden de forma nativa JavaScript, la mayorÃa de las API modernas y herramientas como hojas de cálculo conectadas o generadores de sitios. El XML sigue vivo en facturas electrónicas, feeds de productos, respuestas de administraciones y archivos de configuración, asà que la conversión aparece en cuanto hay que cruzar esos dos mundos. La traducción no es literal: XML mezcla atributos y elementos hijos y JSON no distingue entre ambos, por eso esta herramienta aplica una convención clara y constante: los atributos se guardan con el prefijo @ (por ejemplo @numero), los elementos que se repiten bajo el mismo padre se convierten en un array, y el texto de un elemento con atributos o hijos se conserva en la clave #texto.
Cómo se usa
- Pega tu XML en el campo superior: vale completo, con su declaración
<?xml…?>, comentarios y secciones CDATA. - Elige el formato de salida: legible con 2 o 4 espacios para leerlo y depurarlo, o compacto para pegarlo en una petición o una variable.
- Pulsa Convertir a JSON: si el XML tiene un error (una etiqueta sin cerrar, un cierre que no coincide), el aviso te dice el problema y la posición aproximada.
- Copia el resultado o descárgalo como archivo .json listo para usar.
Ejemplo resuelto
Con la factura de ejemplo que trae la herramienta —dos lÃneas de pedido, atributo numero="2026-041" y atributo moneda="EUR"— el JSON resultante es: {"factura": {"@numero": "2026-041", "@moneda": "EUR", "cliente": "Ana Paz", "linea": [{"concepto": "Teclado", "precio": "39,90"}, {"concepto": "Ratón", "precio": "19,90"}], "total": "59,80"}}. FÃjate en las tres reglas en acción: los atributos cuelgan de la raÃz con @, las dos etiquetas <linea> se han agrupado en un array porque se repiten, y los valores se conservan como texto, exactamente como aparecen en el XML de origen: «39,90» sigue siendo una cadena con su coma decimal, no un número transformado.
Casos de uso frecuentes
- Consumir una API que solo responde XML desde una aplicación JavaScript que espera JSON.
- Revisar respuestas de la administración (facturas, modelos, notificaciones) en un formato más fácil de recorrer y de imprimir bonito.
- Migrar configuraciones antiguas en XML a herramientas modernas que importan JSON.
- Depurar un feed de productos: convertirlo y buscar visualmente qué artÃculos salen y con qué atributos antes de subirlo a la tienda.
Limitaciones honestas
- Todo ocurre en tu navegador: el XML que pegas nunca sale de tu dispositivo; puedes convertir documentos con datos sensibles sin enviarlos a un servidor desconocido.
- Los valores se mantienen como cadenas de texto: el XML no distingue números de texto, asà que «59,80» no se convierte en número; si tu destino necesita tipos, tendrás que convertirlos después.
- Los espacios de nombres (prefijos tipo
ns:etiqueta) se conservan como parte del nombre de la clave; la herramienta no los resuelve ni los elimina. - El contenido mixto (texto suelto entremezclado con etiquetas hijas en el mismo elemento) se simplifica: el texto se junta en
#textoy puede perder su posición exacta entre los hijos.
Preguntas frecuentes
¿Por qué mi elemento sale a veces como objeto y a veces como array?
Porque la regla depende de cuántas veces aparece bajo el mismo padre: una sola vez, objeto (o su texto); dos o más, array con todos. Es la convención habitual, pero tenlo en cuenta al programar el consumo: un campo que hoy viene único mañana puede repetirse y llegar como array.
¿Qué pasa con los atributos? En mi JSON de destino no deberÃan perderse.
No se pierden: se guardan como claves con prefijo @ dentro del mismo objeto (por ejemplo, “@numero”: “2026-041”). Asà se distinguen de los elementos hijos que pudieran llamarse igual y la conversión es reversible en la práctica.
¿Convierte también de JSON a XML?
No, esta herramienta va en una sola dirección. La vuelta no es una operación simétrica: habrÃa que decidir qué claves con @ vuelven a ser atributos y cómo se nombran los elementos de cada array, decisiones que dependen de tu caso.
¿Tiene lÃmite de tamaño el XML que puedo pegar?
El análisis se hace en tu navegador, asà que el lÃmite práctico es la memoria de tu dispositivo: documentos de varios megabytes se convierten sin problema; archivos gigantes de cientos de megabytes es mejor procesarlos con una herramienta de escritorio.
Más herramientas gratuitas
Herramientas relacionadas
Explora también estas herramientas gratuitas en español:
- Generador de Mapas de Sitio Sitemap XML para Páginas Estáticas: Crea y Descarga tu sitemap.xml
- Convertir JSON a Tabla Excel XLSX: Limpiador Estructurado Gratis en tu Navegador
- Separador de Nombres y Apellidos en Excel Online Gratis: Divide Nombre Completo en Tres Columnas y Descarga el CSV
- Validador y Formateador de JSON Online con Errores en Español: Encuentra la LÃnea y la Columna del Fallo
- Conversor de Base64 a Imagen Online Visualizador: PNG, JPEG, GIF, WebP y SVG al Instante
- Conversor de HTML Plano a Entidades HTML Code Converter: Codifica y Decodifica Caracteres Especiales al Instante
- Convertir CSV Separado por Comas a Tabla Markdown Limpia: Pega, Convierte y Copia tu Tabla para GitHub o Notion
- Convertir Número Entero a Palabras y Letras para Cheques Gratis: Importe en Letra al Instante
