Convertir JSON a XML
Crea un documento XML válido a partir de JSON: pon nombre a las etiquetas raíz y de elemento, y las claves que XML no admite se corrigen en lugar de descartarse.
Suelta tus archivos aquí
.json, .ndjson, .txt · hasta 300 MB
Más ajustesMenos ajustes
Cómo convertir a XML
- 1
Suelta un archivo JSON
Añade un archivo o hasta veinte. El texto se lee y se analiza dentro de esta pestaña del navegador, y cualquier error de sintaxis indica la línea y la columna exactas.
- 2
Pon nombre a las etiquetas raíz y de elemento
La raíz envuelve todo el documento; el nombre del elemento se reutiliza para cada entrada de un array. Las claves que empiezan con el prefijo de atributo se convierten en atributos.
- 3
Convierte y descarga el XML
Pulsa el botón para obtener un documento declarado y con sangría. Un lote vuelve como un único archivo ZIP.
Claves que XML no admite como nombres de etiqueta
Las claves de objeto JSON casi no tienen restricciones; los nombres de elementos en XML sí. «2024 sales», «order id» y la cadena vacía son claves legales, pero ninguna puede usarse tal cual como etiqueta. Si se eliminaran esos campos en silencio, se perderían datos, así que los caracteres no válidos se convierten en guiones bajos, un nombre que empieza por un dígito recibe una n delante y la lista completa de de-qué-a-qué se devuelve junto con el resultado.
Caracteres que XML prohíbe por completo
El escape se encarga de los signos & y los corchetes angulares. Los caracteres de control por debajo de 0x20 son otro problema: XML 1.0 los rechaza sin importar cómo se escriban, y ni una entidad ni un bloque CDATA los salva. Un solo 0x0B pegado desde una celda de hoja de cálculo haría que todo el documento no se pudiera analizar, así que esos bytes se eliminan y se cuentan, y el recuento se muestra junto al resultado.
Atributos, nodos de texto y valores null
Una clave que comienza con el prefijo de atributo, @_ de forma predeterminada, se convierte en un atributo de su elemento padre en lugar de un elemento hijo, y la clave de texto lleva el texto propio del elemento. JSON tiene null y XML no tiene equivalente directo, así que decides tú: un elemento vacío, un elemento marcado con xsi:nil o ningún elemento.
El archivo no sale de esta pestaña
Leer el archivo, analizar el JSON, corregir los nombres y serializar el XML sucede todo en tu navegador, en un hilo de trabajo, con el código que viene en la página. No hay paso de subida, ni cola de procesamiento ni registro o cuenta. Cuando cierras la pestaña, el archivo desaparece, porque nunca se ha hecho una copia en ningún otro sitio.
Preguntas frecuentes
¿Cómo pongo el nombre del elemento raíz?
El nombre de la raíz es el primer campo de la página y por defecto es root. Tiene que ser un nombre XML legal (letras, dígitos, puntos, guiones y guiones bajos, sin empezar por un dígito ni por el prefijo reservado xml). Si no lo es, se te avisa al momento y se sugiere una corrección.
¿Cómo convierto una clave JSON en un atributo XML?
Pon el prefijo @_ a la clave en tu JSON y se convierte en un atributo del elemento que la contiene en lugar de una etiqueta anidada. El prefijo es configurable hasta tres caracteres, y si lo borras se desactiva por completo el mapeo de atributos, de modo que cada clave pasa a ser un elemento.
¿Qué pasa con las claves que no son nombres de etiqueta XML válidos?
De forma predeterminada se corrigen: los caracteres ilegales se convierten en guiones bajos, un dígito inicial recibe una n delante y una clave vacía se sustituye por el nombre del elemento. Recibes un aviso con la lista de lo que se renombró. También puedes forzar que todas las correcciones se apliquen sin avisos o detener el proceso con un error en la primera clave no válida.
¿Qué pasa con los valores null?
Tres opciones. Un elemento vacío mantiene el campo visible en el documento, xsi:nil lo marca como null explícito de la forma que esperan los consumidores con esquema y declara el espacio de nombres en la raíz, y omitirlo deja el campo fuera. Los elementos vacíos son el valor predeterminado porque permiten una ida y vuelta más predecible.
¿Cuándo necesito CDATA?
Rara vez, porque el escape normal siempre es correcto. CDATA se usa sobre todo por legibilidad cuando los valores contienen mucho texto que parece marcado: actívalo y las cadenas de más de 200 caracteres, o con corchetes angulares y signos &, van a un bloque CDATA. Un ]]> literal dentro de ese valor se divide en dos bloques para que la salida siga siendo válida.
¿Se conserva el orden de las claves?
Sí. Los elementos se escriben en el orden en que aparecen las claves en el JSON de origen, y las entradas de los arrays mantienen su orden de índice. Los atributos se escriben antes que los elementos hijo porque XML lo exige, pero entre ellos también siguen el orden de origen, lo que mantiene la salida lo bastante estable como para compararla entre ejecuciones.
¿Mi archivo se sube a algún sitio?
No. Todo sucede en tu pestaña del navegador, y el analizador JSON y el serializador XML forman parte de la página, no de un servicio externo. No hay ningún servidor que pueda recibir el archivo, de modo que no se almacena, registra ni conserva nada después de cerrar la pestaña.