Convertir JSON a XML

Funciona en tu dispositivo · Tu archivo nunca sale de tu dispositivo.

Pega o suelta JSON y obtén un documento XML con su declaración arriba y un elemento por clave. Un documento con una sola clave de primer nivel la usa como elemento raíz; todo lo demás va dentro de <root>. Una lista se convierte en elementos repetidos con el nombre de su clave – "items": [..] da varios elementos <items> – y una lista de primer nivel se convierte en elementos <item> dentro de <root>.

Las claves que empiezan por @ pasan a ser atributos y una clave "#text" pasa a ser el texto del elemento – la forma que escribe la herramienta XML a JSON, así que un documento convertido allí vuelve aquí como el mismo XML. Cualquier otro valor es texto dentro de su elemento, null pasa a ser un elemento vacío, y el documento lleva dos espacios de sangría por nivel. Las claves que XML no admite como nombre – que empiezan por un dígito o contienen espacios o símbolos – se sanean con guiones bajos para que el resultado siempre se pueda analizar.

El texto se escapa correctamente (&, <, > y, en los atributos, las comillas y los saltos de línea); los caracteres de control, que XML 1.0 no puede contener de ninguna forma, se eliminan. La codificación es UTF-8 y ves las primeras 200 líneas antes de descargar. No se sube nada.

Cómo Convertir JSON a XML

  1. Suelta un archivo JSON o pega el JSON en el cuadro.
  2. Pulsa «Convertir a XML».
  3. Revisa la vista previa y descarga el .xml.

Formatos admitidos y límites

Entrada
JSON (.json) – un archivo o texto pegado
Salida
XML 1.0, UTF-8, declaración arriba, con sangría
Raíz
La única clave de primer nivel, o si no <root>; una lista de primer nivel pasa a elementos <item>
Listas
Elementos repetidos con el nombre de la clave
Dónde se ejecuta
En tu navegador – sin subir nada

No sirve para: Ajustarse a un esquema XML concreto (SOAP, RSS, una norma de factura electrónica) – los nombres de elemento siguen tus claves JSON, no un esquema.

Cómo se convierten tus claves en nombres de elemento

Una clave que empieza por @ pasa a ser un atributo, y una clave "#text" pasa a ser el texto del elemento, así que {"item": {"@id": 3, "#text": "A"}} da <item id="3">A</item>. Cuando el documento tiene una sola clave de primer nivel, esa clave es el elemento raíz; si no, todo va dentro de <root>.

Un carácter que XML no admite en un nombre se convierte en un guion bajo, y un nombre que empieza por un carácter que no puede ir primero, como un dígito, recibe uno delante: "1er puesto" pasa a <_1er_puesto>. Los dos puntos solo se conservan cuando su prefijo está declarado más arriba, como en "@xmlns:soap"; un "soap:Body" sin declarar pasa a <soap_Body>, porque ningún analizador que tenga en cuenta los espacios de nombres lo leería de otro modo. Se admiten letras de cualquier escritura, así que una clave como "año", "اسم" o "名前" se queda tal cual.

Cómo quedan los valores

Cada valor se escribe como texto, y los números exactamente como los tiene el JSON: 1.0 sigue siendo 1.0 y 12345678901234567890 conserva todas sus cifras. null y un objeto vacío dan los dos un elemento vacío, como <note/>, y una lista vacía no escribe nada, así que el XML no puede distinguir estos tres casos.

Los caracteres de control, es decir, los códigos por debajo de 32 que no son el tabulador, el salto de línea ni el retorno de carro, no se pueden escribir en XML 1.0 de ninguna forma, ni siquiera como un número del tipo &#1;, así que se eliminan. Un retorno de carro se escribe como &#13; para que el analizador lo conserve. En los valores de atributo, las comillas, los tabuladores y los saltos de línea también se escriben como referencias, porque si no un analizador los convertiría en espacios.

Las listas de listas pierden su agrupación

Los elementos repetidos solo pueden expresar un nivel de lista. "m": [[1, 2], [3]] se convierte en tres elementos <m> con 1, 2 y 3, y se pierde que 1 y 2 iban juntos. Una lista de primer nivel se comporta igual: [1, [3, 4]] da tres elementos <item>. Si la agrupación importa, envuelve antes cada lista interior en un objeto: [{"values": [1, 2]}, {"values": [3]}] da dos elementos <item>, cada uno con su propio <values>.

Ir de XML a JSON y volver

Un documento que pasó por /xml-to-json vuelve con los mismos elementos, atributos, prefijos de espacio de nombres y texto, sin ningún envoltorio añadido. Lo que el JSON nunca guardó no vuelve: los comentarios y el DOCTYPE, la posición del texto entre elementos hijos, y el orden entre elementos de nombres distintos, que vuelven agrupados por nombre. Si la detección de tipos estaba activada en /xml-to-json, un valor como TRUE vuelve como true; desactívala allí para un viaje de ida y vuelta palabra por palabra.

Preguntas frecuentes

¿Mis archivos se suben a un servidor?
No. La conversión ocurre por completo en tu navegador, con la potencia de tu propio dispositivo. El archivo no sale de tu ordenador ni de tu móvil. Y una vez que has usado una herramienta, sigue funcionando sin conexión (el video, el reconocimiento de texto y la eliminación de fondo descargan su motor desde esta web la primera vez).
¿Cómo se representan las listas?
Como elementos repetidos. {"items": [1, 2]} se convierte en <items>1</items><items>2</items>. Una lista en la raíz del documento pasa a ser elementos <item> dentro de <root>. Una lista vacía no produce ningún elemento.
¿Y las claves con espacios o dígitos?
Los nombres de elemento XML no pueden empezar por un dígito ni contener espacios. Esas claves se sanean: "1er puesto" pasa a _1er_puesto, "precio unitario" a precio_unitario. Todo lo demás se conserva tal cual.
¿Puedo obtener atributos en lugar de elementos hijos?
Sí: pon @ delante de la clave. {"item": {"@id": 3, "name": "A"}} da <item id="3"><name>A</name></item>. Es la forma que escribe la herramienta XML a JSON, así que el viaje de ida y vuelta devuelve el mismo documento.

Herramientas relacionadas

Más en Hojas de cálculo y datos

Esta página en otros idiomas: English · العربية · Deutsch · Français · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা