Nexo ÚtilProcesamiento local

Conversor de datos

XML a JSON

Transforma elementos, atributos y nodos repetidos de XML en una estructura JSON legible para integraciones y pruebas.

Convertir documento XML

Local en tu navegador
0 caracteres

Cómo convertir XML a JSON

  1. Pega un documento XML bien formado.
  2. Presiona Convertir a JSON.
  3. Revisa atributos, textos y listas en la salida.
  4. Copia o descarga el archivo JSON.

Reglas de conversión

Los atributos usan el prefijo @, el texto mixto usa #text y las etiquetas hermanas repetidas se convierten en arreglos.

XML y JSON tienen modelos diferentes, por lo que no existe una única representación universal. Comprueba siempre que la convención sirva para el sistema receptor.

Cómo interpretar la estructura resultante

XML distingue elementos, atributos y texto, mientras JSON representa propiedades, valores y arreglos. Por eso la conversión utiliza una convención explícita: los atributos reciben el prefijo @, el texto combinado se guarda en #text y las etiquetas hermanas con el mismo nombre forman un arreglo.

Repeticiones y tipos de datos

Los valores XML comienzan como texto. Una fecha, un número o un booleano no adquiere automáticamente ese tipo en JSON, porque hacerlo sin conocer el esquema podría cambiar identificadores, ceros iniciales o valores exactos. Convierte los tipos posteriormente según el contrato del sistema receptor.

Validar antes de integrar

Corrige primero la sintaxis con el formateador y validador XML. Después compara atributos, listas y contenido mixto con una muestra esperada. Si otro sistema utiliza una convención distinta, adapta las claves antes de enviar el JSON.

Ejemplo completo de conversión XML a JSON

Considera un inventario con un atributo y dos elementos repetidos:

<inventario sede="UIO"><producto>Cuaderno</producto><producto>Lápiz</producto></inventario>

{ "inventario": { "@sede": "UIO", "producto": ["Cuaderno", "Lápiz"] } }

El atributo utiliza @sede y los dos elementos producto se agrupan como arreglo. Si solo hubiera un producto, esta convención produciría un valor simple; el consumidor debe saber manejar esa diferencia o normalizarla posteriormente.

Contenido mixto y texto

En <mensaje prioridad="alta">Revisar <b>hoy</b></mensaje> conviven atributo, texto y un elemento hijo. La salida utiliza @prioridad para el atributo y #text para el texto directo. Este modelo conserva información, pero no reproduce necesariamente el orden exacto entre fragmentos de texto y etiquetas.

Namespaces y nombres calificados

Un nombre como factura:total conserva su prefijo como parte de la clave. La conversión no resuelve el significado del namespace ni reemplaza el prefijo por su URI. Si una integración compara namespaces y no solo nombres, define una transformación específica fuera de esta herramienta.

Valores que parecen números o booleanos

<codigo>0012</codigo> permanece como texto para conservar los ceros iniciales; <activo>true</activo> también se mantiene textual. Convertirlos automáticamente podría modificar identificadores. Aplica tipos únicamente cuando conozcas el esquema o contrato del documento.

Lista de comprobación para una migración

  1. Valida el XML y conserva una copia del original.
  2. Identifica atributos, repeticiones, namespaces y contenido mixto.
  3. Convierte una muestra pequeña y documenta la convención obtenida.
  4. Compara la salida con el JSON esperado por el sistema receptor.
  5. Normaliza arreglos y tipos mediante reglas explícitas, no por apariencia.
  6. Prueba casos vacíos, un solo elemento y varios elementos repetidos.
Conversión no reversible por defecto: JSON no conserva por sí mismo todos los detalles de XML, como orden mixto, comentarios o instrucciones de procesamiento. No elimines el documento original hasta verificar el flujo completo.
Caso comprobable

Prueba reproducible: atributos y elementos repetidos

El caso combina un atributo en la raíz, dos elementos con el mismo nombre, atributos internos y texto. Así se puede revisar cada regla de conversión publicada.

Entrada utilizada

<inventario sede="UIO">
  <producto codigo="A1">Cuaderno</producto>
  <producto codigo="A2">Lápiz</producto>
</inventario>

Resultado esperado

{
  "inventario": {
    "@sede": "UIO",
    "producto": [
      { "@codigo": "A1", "#text": "Cuaderno" },
      { "@codigo": "A2", "#text": "Lápiz" }
    ]
  }
}
  • @sede y @codigo conservan los atributos.
  • Las dos etiquetas producto forman un arreglo de dos posiciones.
  • El texto permanece en #text porque cada producto también tiene un atributo.

Alcance: el registro verifica la convención propia del portal; otros conversores pueden elegir otra representación igualmente válida. Consulta la metodología y sus límites.

Herramientas relacionadas