Convertidor de JSON a XML

Convierte datos JSON a XML. @attributes se restaura como atributos del elemento, #text como contenido de texto, y los arrays como elementos hermanos repetidos — el proceso inverso de nuestro convertidor de XML a JSON, todo en el navegador.

Cómo funciona esta conversión de JSON a XML

JSON y XML describen ambos datos estructurados, pero no describen exactamente las mismas cosas. XML dispone de atributos y de contenido textual, dos conceptos que no existen en JSON. Por eso, cualquier conversión directa tropieza siempre con las mismas dos preguntas: cómo expresar los atributos y cómo devolver un array a su forma de elementos repetidos. Esta herramienta sigue la convención más extendida y asigna `@attributes` a los atributos del elemento, `#text` al contenido textual y los arrays a elementos hermanos que comparten nombre.

Por ejemplo, `{"book": {"@attributes": {"id": "1"}, "#text": "Título"}}` se convierte en `Título`, mientras que `{"item": [1, 2]}` produce los dos hermanos `12`. En el contenido textual se escapan automáticamente `&`, `<` y `>` como referencias de entidad, y en los valores de atributo se escapa además la comilla doble, de modo que un valor con signos de puntuación nunca genera un XML roto. Todo el proceso ocurre dentro de su navegador y nada se envía a ningún servidor.

Cómo convertir JSON en XML

  1. Pegue el JSON Introduzca el JSON que quiere convertir, ya sea un objeto o un array.
  2. Coloque en @attributes lo que deba ser atributo Reúna dentro de un objeto `@attributes` las claves que quiera obtener como atributos del elemento.
  3. Coloque el contenido textual en #text Cuando un elemento necesite llevar a la vez atributos y cuerpo, sitúe el valor del cuerpo bajo `#text`.
  4. Revise el resultado y cópielo Obtendrá un XML con sangría, listo para pegarlo en un archivo de configuración o en una petición de API.

Consejos para aprovecharla mejor

  • Coloca un objeto bajo la clave `@attributes` y cada una de sus propiedades se convertirá en un atributo del elemento convertido.
  • Usa una clave `#text` para el contenido de texto de un elemento que también tenga atributos o elementos hijos. Un elemento simple sin atributos puede usar directamente una cadena como valor.
  • Dale a la misma clave un array y cada elemento se generará como un elemento hermano repetido con ese nombre.
  • Un valor `null` produce una etiqueta vacía y autocerrada (``) sin atributos, texto ni hijos.
  • Esta herramienta espera una entrada con el formato que produce nuestro "Convertidor de XML a JSON" (un objeto cuya clave es el nombre del elemento raíz, con exactamente una clave de nivel superior).

Situaciones en las que resulta útil

Enviar datos a una API que solo acepta XML

Cuando sus datos están en JSON pero el destinatario exige XML, algo habitual al integrarse con sistemas de gestión antiguos.

Migrar un formato de configuración

Sirve como primer borrador al trasladar ajustes escritos en JSON a una herramienta basada en XML.

Pensar la estructura XML desde JSON

Escribir a mano un XML con muchos niveles de anidamiento es laborioso; montarlo en JSON y convertirlo después resulta mucho más claro de seguir.

Fijar la convención de su propio conversor

Probar cómo se reflejan `@attributes` y `#text` le ayuda a decidir la especificación de un conversor que esté escribiendo usted mismo.

Términos de la conversión de JSON a XML

Atributo
La parte `id="1"` de ``. JSON no tiene un equivalente, así que esta herramienta lo representa con la clave especial `@attributes`.
Contenido textual (#text)
El cuerpo de `Título`. Use `#text` cuando el elemento deba llevar atributos y cuerpo a la vez.
Referencia de entidad (escape)
Reescribir `&` como `&` y similares. **El ampersand debe convertirse primero; de lo contrario, el `&` de un `<` recién creado se escapa una segunda vez.**
Elementos hermanos repetidos
XML expresa una lista repitiendo elementos con el mismo nombre de etiqueta. Un array de JSON vuelve a esta forma.
Elemento raíz
XML exige exactamente un elemento en el nivel superior. Cuando el nivel superior de su JSON contiene varias claves, conviene tenerlo presente.

Preguntas frecuentes

Una clave llamada `@attributes` que contiene un objeto convierte cada una de sus propiedades en un atributo del elemento XML resultante. Por ejemplo, `{"@attributes": {"category": "fiction"}}` se convierte en un atributo `category="fiction"`.

Asignar un array a la misma clave genera cada elemento del array como un elemento hermano repetido con ese nombre. Por ejemplo, `"book": [{"title": "A"}, {"title": "B"}]` se convierte en un XML con dos etiquetas ``.

La causa más común es un error de sintaxis en el JSON (una coma faltante o una clave sin comillas). El XML también requiere exactamente un elemento raíz, por lo que un JSON con varias claves de nivel superior, o con un array en la raíz, también fallará.

Sí, nuestro "Convertidor de XML a JSON" se encarga de la dirección inversa. Como ambas herramientas usan la misma convención de conversión, el contenido se conserva en ambos sentidos.

Esta herramienta asume la convención usada por el "Convertidor de XML a JSON" (`@attributes`, `#text`, arrays y null). Un JSON de estructura libre que no siga esta convención — como una respuesta típica de una API llena de números y booleanos — puede no convertirse en la estructura XML que esperabas.
Tool-kun

A propósito — Qué tener en cuenta al "devolver" JSON a XML

Convertir XML a JSON se parece bastante a comprimir información. XML puede llevar tres tipos de información — atributos, texto y elementos hijos — mientras que JSON solo tiene pares clave-valor simples, así que hay que adoptar alguna convención al convertir (esta herramienta sigue las mismas cuatro reglas: `@attributes`, `#text`, arrays y null). Mientras se respete esa convención, convertir JSON de vuelta a XML es un proceso mecánico y bien definido — pero forzar un JSON de estructura libre que no la sigue puede dejar poco claro qué debería ser un atributo y qué un elemento, y el resultado puede no coincidir con lo esperado.

En la práctica, esto surge cuando la respuesta de una API XML antigua se convierte a JSON para procesarla más fácilmente en JavaScript, y luego se convierte de vuelta a XML para enviarla a otro sistema — por ejemplo, remodelar la respuesta de una API SOAP como JSON antes de reenviarla como una solicitud de estilo SOAP. En este tipo de ida y vuelta, mantener la convención de conversión consistente es lo más importante; mezclar una herramienta que use una convención diferente a mitad de camino puede desordenar la relación entre atributos y texto.

Esta herramienta exige estrictamente exactamente una clave de nivel superior porque refleja una regla del propio XML: un documento debe tener exactamente un elemento raíz. Si necesitas convertir un JSON con varias claves de nivel superior, envuélvelo primero en una clave padre común (por ejemplo, `root`), y se convertirá correctamente en un XML con un único elemento raíz.