JSON a XML

Pega un documento JSON y obtén el equivalente XML con el nombre del elemento raíz que elijas, una estrategia consistente para arreglos (elementos repetidos o un contenedor), declaración XML opcional y sangría adecuada. Útil cuando un sistema legado requiere XML y tus datos de origen están en JSON.

Cómo convertir JSON a XML

  1. 1

    Pegar JSON

    Objeto o arreglo en el nivel superior. Darás un nombre al elemento raíz.

  2. 2

    Nombrar la raíz

    XML requiere un único elemento raíz. El predeterminado es `<root>`; dale un nombre significativo como `<users>` o `<response>`.

  3. 3

    Elegir estrategia de arreglo

    "Elementos repetidos" (cada elemento del arreglo se convierte en un hermano `<item>`) o "contenedor" (el arreglo va dentro de un elemento contenedor nombrado).

  4. 4

    Copiar el XML

    Declaración XML opcional, sangría adecuada y valores escapados para `<`, `>`, `&` y comillas.

Ejemplo: elementos repetidos

Entrada:

{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }

Salida:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <users>
    <name>Alice</name>
  </users>
  <users>
    <name>Bob</name>
  </users>
</root>

Ejemplo: contenedor de arreglo

Misma entrada con la estrategia de “envolver arreglos en <item>”:

<root>
  <users>
    <item>
      <name>Alice</name>
    </item>
    <item>
      <name>Bob</name>
    </item>
  </users>
</root>

Mapeo de tipos

JSON XML
string contenido de texto, escapado de entidad
integer / decimal contenido de texto (sin anotación de tipo XML)
boolean true / false como texto
null elemento vacío (<foo/>) u omitido
array elementos repetidos o contenedor + elementos
object elemento anidado con elementos hijos

Atributos vs elementos

XML distingue atributos (<user id="1">) de elementos hijos (<user><id>1</id></user>). El convertidor usa elementos de forma predeterminada: no pierden información en la conversión de ida y vuelta. Si tu XML de salida requiere atributos, usa una convención de prefijo de clave:

  • La clave JSON @id se convierte en un atributo XML id="..." en el elemento padre.
  • La clave JSON #text se convierte en el contenido de texto del elemento padre.

Estas convenciones provienen de los mapeos BadgerFish y Parker, los dos estándares más comunes de JSON a XML.

Reglas de escape

  • < -> &lt;
  • > -> &gt;
  • & -> &amp;
  • " -> &quot; (en valores de atributos)
  • ' -> &apos; (opcional)
  • Los bytes en UTF-8 se preservan, declarados en el prólogo XML.

Errores comunes

  • Arreglo JSON de nivel raíz. XML necesita un único elemento raíz. El convertidor envuelve un arreglo en <root> (o el nombre que elijas).
  • Claves numéricas. JSON {"1": "a"} es legal; los nombres de elementos XML no pueden comenzar con un dígito. El convertidor antepone dígitos con un guion bajo (_1) o te permite definir un mapeo personalizado.
  • Arreglos mixtos. [1, "two", { "x": true }] no tiene un mapeo limpio. Generalmente esto significa que el JSON necesita normalización antes de la conversión.
  • Documentos enormes. XML es verboso, un JSON de 10 MB puede convertirse en un XML de 20-30 MB. Considera la conversión por streaming para cargas muy grandes.

Preguntas frecuentes

XML requiere una única raíz por especificación. Si tu JSON es un arreglo o tiene múltiples claves de nivel superior, el convertidor envuelve todo en un elemento raíz que puedes nombrar (predeterminado <root>).

Sí. Usa la convención de prefijo @ en tus claves JSON (por ejemplo, "@id": 1) y esas claves se convierten en atributos. Otras claves permanecen como elementos hijos. Esto coincide con el mapeo BadgerFish.

Dos estrategias: elementos hermanos repetidos (cada elemento recibe la clave padre como su etiqueta), o un contenedor con elementos <item> dentro. Elige la que coincida con el esquema XML que estás apuntando.

No. El convertidor emite la declaración XML (<?xml version="1.0"?>) pero no un DOCTYPE. Para XML que necesita una referencia DTD o XSD, agrégala manualmente después de la conversión.

Herramientas relacionadas

Herramienta disponible en otros idiomas