Conversor XML a JSON
Convierte XML a JSON de forma rápida y precisa.
¿Cómo convertir XML a JSON?
Pega tu XML en el editor y haz clic en «Convertir a JSON». La herramienta parsea el XML usando el DOMParser nativo del navegador y genera una representación JSON equivalente que respeta la estructura jerárquica, los atributos y los elementos repetidos. El resultado se puede copiar al portapapeles o descargar como archivo .json. No se requiere instalación ni envío de datos a servidores externos.
XML vs JSON: comparación de formatos
XML (eXtensible Markup Language) y JSON (JavaScript Object Notation) son los dos formatos de intercambio de datos más importantes en la historia del desarrollo de software. XML fue el estándar dominante durante los años 2000, especialmente en entornos empresariales (Java, .NET, SOAP). JSON emergió como alternativa más ligera y se convirtió en el formato preferido para APIs web y aplicaciones modernas. XML es más verboso (requiere etiquetas de apertura y cierre) pero ofrece características avanzadas como namespaces, esquemas de validación (XSD) y transformaciones (XSLT). JSON es más compacto, más fácil de parsear en JavaScript y tiene soporte nativo en la mayoría de lenguajes de programación modernos.
¿Por qué migrar de XML a JSON?
La migración de XML a JSON se ha acelerado en los últimos años por varias razones. Las APIs REST modernas usan JSON como formato estándar, reemplazando a los servicios SOAP que usaban XML. JSON produce payloads significativamente más pequeños (típicamente un 30-50% menos de bytes), lo que reduce el consumo de ancho de banda y mejora los tiempos de respuesta. Las bases de datos NoSQL como MongoDB, CouchDB y Firebase trabajan nativamente con documentos JSON. Además, el ecosistema JavaScript (tanto frontend como Node.js) puede parsear JSON con una sola llamada a JSON.parse(), mientras que parsear XML requiere librerías adicionales o APIs más complejas como DOMParser.
Atributos XML vs elementos: cómo se mapean a JSON
Una de las diferencias fundamentales entre XML y JSON es que XML distingue entre atributos y elementos hijos, mientras que JSON solo tiene propiedades de objetos. En esta herramienta, los atributos se prefijan con @ para diferenciarlos. Si un elemento tiene tanto atributos como contenido de texto, el texto se almacena bajo la clave #text. Por ejemplo, <precio moneda="EUR">29.99</precio> se convierte en {"@moneda": "EUR", "#text": "29.99"}. Los elementos repetidos al mismo nivel se agrupan automáticamente en arrays, y los elementos vacíos se representan como null.
Migración de SOAP a REST
Uno de los casos de uso más comunes para la conversión XML a JSON es la migración de servicios SOAP a APIs REST. Los servicios SOAP usan XML tanto para las peticiones como para las respuestas, envueltos en una estructura Envelope con Header y Body. Al migrar a REST con JSON, la estructura se simplifica considerablemente: el Envelope y los namespaces desaparecen, y los datos se representan directamente como objetos JSON planos. Esta herramienta es útil para analizar respuestas SOAP existentes y entender qué estructura JSON equivalente necesitarás diseñar para tu nueva API REST.
Namespaces XML y su representación en JSON
Los namespaces son un mecanismo XML para evitar conflictos de nombres cuando se combinan vocabularios de diferentes fuentes. Se declaran con el atributo xmlns y se usan como prefijos en los nombres de elementos (por ejemplo, soap:Body, xsi:type). JSON no tiene un concepto equivalente a los namespaces. En esta herramienta, los prefijos se preservan como parte del nombre de la clave (por ejemplo, "soap:Body"), lo que mantiene la información semántica original. Las declaraciones xmlns se incluyen como atributos regulares con el prefijo @xmlns. Si planeas consumir el JSON resultante en tu aplicación, puedes optar por eliminar los prefijos de namespace en un paso posterior de transformación si no los necesitas.
Preguntas frecuentes
Los atributos XML se convierten en propiedades con prefijo @. Por ejemplo, <libro id="1" idioma="es"> genera {"@id": "1", "@idioma": "es"}. Este prefijo permite distinguir claramente los atributos de los elementos hijos en la estructura JSON resultante, evitando colisiones de nombres.
Si un elemento padre tiene varios hijos con el mismo nombre de etiqueta, se convierten automáticamente en un array JSON. Por ejemplo, si hay tres elementos <item> dentro de <lista>, el resultado será {"lista": {"item": ["valor1", "valor2", "valor3"]}}. Si solo existe un hijo con ese nombre, se mantiene como valor único (no array).
Sí. La herramienta preserva los prefijos de namespace en los nombres de los elementos. Por ejemplo, <soap:Envelope> se convierte en la clave "soap:Envelope" en el JSON resultante. Las declaraciones xmlns se tratan como atributos regulares. Esto permite identificar el origen de cada elemento cuando el XML usa múltiples namespaces.
No. La conversión se realiza íntegramente en tu navegador usando el DOMParser nativo (la misma API que usa el navegador para parsear páginas web). Tu XML nunca sale de tu dispositivo. Puedes verificarlo desconectando tu conexión a internet: la herramienta seguirá funcionando normalmente.
Sí. Las respuestas SOAP son documentos XML con una estructura específica (Envelope, Header, Body). Puedes pegar la respuesta SOAP completa y la herramienta la convertirá a JSON respetando toda la jerarquía. Los prefijos de namespace SOAP (soap:, wsdl:, etc.) se mantienen en las claves JSON para preservar la semántica original del mensaje.
La principal limitación es que XML y JSON tienen modelos de datos fundamentalmente diferentes. XML distingue entre atributos y elementos, permite contenido mixto (texto intercalado con elementos) y soporta namespaces, mientras que JSON solo tiene objetos y arrays. Los comentarios XML se ignoran, las instrucciones de procesamiento (<?xml ...?>) no se incluyen, y el contenido mixto puede perder su orden relativo. Para la mayoría de XMLs estructurados (configuraciones, datos, APIs), la conversión es fiel y completa.