Convertidor XML-JSON
Convierte XML a JSON y JSON a XML en línea, en tu navegador, sin subir nada. Conserva atributos, CDATA, ceros iniciales y estructuras anidadas.
Acerca del Convertidor XML-JSON
Convertidor XML-JSON es una herramienta gratuita en línea que convierte entre formatos XML (eXtensible Markup Language) y JSON (JavaScript Object Notation). Convierte XML a JSON o JSON a XML con soporte para atributos, estructuras anidadas y formato personalizado, todo procesado localmente en tu navegador para privacidad completa.
¿Por qué convertir entre XML y JSON?
XML y JSON son formatos populares de intercambio de datos, pero se usan en diferentes contextos:
- XML: Común en sistemas heredados, APIs SOAP, archivos de configuración y aplicaciones empresariales
- JSON: Estándar para APIs REST modernas, aplicaciones web y bases de datos NoSQL
Convertir entre formatos te permite:
- Integrar sistemas XML heredados con APIs JSON modernas
- Procesar datos XML en aplicaciones JavaScript
- Transformar datos JSON para sistemas basados en XML
- Migrar datos entre diferentes plataformas
¿Cómo se manejan los atributos XML?
Los atributos XML se convierten en propiedades JSON con un prefijo especial:
- Habilitado (predeterminado): Los atributos se convierten en propiedades con prefijo '@_'
Ejemplo: <libro id="1"> se convierte en {"@_id": "1"}
- Deshabilitado: Los atributos se ignoran durante la conversión
Al convertir JSON a XML, las propiedades con prefijo '@_' se convierten automáticamente en atributos XML, preservando la estructura original.
¿Mis datos salen de mi dispositivo?
No. Toda la conversión XML-JSON ocurre completamente en tu navegador usando JavaScript. Tus datos nunca salen de tu máquina, asegurando privacidad completa para información sensible como archivos de configuración, respuestas de API o estructuras de datos confidenciales.
¿Qué es 'Analizar Valores de Etiquetas'?
Esta opción convierte automáticamente el contenido de texto XML a tipos de datos apropiados en JSON:
- Habilitado (predeterminado): Convierte números, booleanos y valores nulos
Ejemplo: <edad>30</edad> se convierte en {"edad": 30} (número, no cadena)
- Deshabilitado: Todos los valores permanecen como cadenas
Ejemplo: <edad>30</edad> se convierte en {"edad": "30"} (cadena)
Esto es útil cuando deseas preservar tipos de datos exactos para usar en programación.

¿Puedo personalizar el formato de salida XML?
Sí. Al convertir JSON a XML, puedes:
1. Establecer un nombre de elemento raíz personalizado (predeterminado: 'root')
2. Habilitar/deshabilitar formato XML (impresión bonita)
3. Elegir tamaño de sangría (2 o 4 espacios)
El convertidor agrega automáticamente la declaración XML (<?xml version="1.0"?>) y formatea adecuadamente las estructuras anidadas para legibilidad.
¿Cómo se manejan los arrays JSON en XML?
Los arrays JSON se convierten en elementos XML repetidos con el mismo nombre de etiqueta:
JSON: {"libros": [{"titulo": "Libro 1"}, {"titulo": "Libro 2"}]}
XML:
<libros>
<titulo>Libro 1</titulo>
<titulo>Libro 2</titulo>
</libros>
Esta es la representación XML estándar de listas, comúnmente utilizada en feeds RSS, respuestas SOAP y archivos de configuración.
¿Cómo se manejan las secciones CDATA y los comentarios XML?
Mantén activada la opción 'Mantener CDATA y Comentarios' (predeterminada) para una conversión de ida y vuelta sin pérdidas. Las secciones CDATA se guardan bajo la clave '#cdata' y los comentarios XML bajo '#comment', y luego se reconstruyen como <![CDATA[...]]> y <!-- ... --> al volver a XML. Esto importa cuando tu XML envuelve HTML, scripts o marcado escapado dentro de CDATA: sin esta opción esos contenidos y los comentarios se descartan en silencio. Desactívala solo si quieres un JSON más plano y no necesitas conservarlos.
Nota: esta herramienta usa la biblioteca fast-xml-parser, un estándar ampliamente utilizado para la conversión XML/JSON en Node.js y en el navegador.
¿Por qué mi código postal 01234 se convirtió en 1234 y cómo conservo los ceros iniciales?
Cuando 'Analizar Valores de Etiquetas' está activado, fast-xml-parser intenta convertir el texto que parece numérico en números reales, lo que elimina los ceros iniciales y puede corromper códigos postales, números de cuenta, SKU y teléfonos. Mantén activada la opción 'Conservar Ceros Iniciales' (predeterminada): establece leadingZeros:false para que cualquier valor que empiece por cero —como <zip>01234</zip>— se quede como la cadena "01234". Esto es esencial para exportaciones de ERP, respuestas de API SOAP y archivos de configuración donde el texto exacto importa. Si quieres conservar todos los valores como cadenas, desactiva 'Analizar Valores de Etiquetas' por completo.
¿Cómo fuerzo que un elemento sea siempre un array y cómo se manejan los espacios de nombres?
De forma predeterminada, una etiqueta que aparece una vez se convierte en un objeto JSON y la misma etiqueta repetida se convierte en un array, por lo que las listas de un solo elemento pueden perder su forma de array. Si tu código espera siempre un array, posprocesa el JSON o envuelve el valor en [] tras la conversión. Los elementos y atributos con espacio de nombres (por ejemplo xmlns:soap o soap:Body) se conservan con su prefijo como parte de la clave, de modo que los sobres SOAP se convierten correctamente en ambos sentidos. Combina esto con 'Mantener CDATA y Comentarios' y 'Conservar Ceros Iniciales' para un trabajo de migración de datos seguro.
