Conversor de JSON a XML

Convierte datos JSON al formato XML. Pega tu JSON a la izquierda para obtener una salida XML bien formada.

JSON de entrada

Salida XML

JSON y XML, dos formatos, dos eras

XML (Extensible Markup Language) fue estandarizado por el W3C como Recomendación el 10 de febrero de 1998, la spec W3C XML 1.0, editada por Tim Bray, Jean Paoli y C.M. Sperberg-McQueen. XML surgió de SGML (el más antiguo «Standard Generalised Markup Language», ISO 8879:1986) eliminando las características más complejas y produciendo algo que la web podría usar realísticamente. Durante aproximadamente la primera década del siglo XXI, XML fue el formato presunto para cualquier intercambio de datos estructurados, servicios web SOAP, feeds RSS (RSS 2.0, Dave Winer, 2002), Atom (RFC 4287, 2005), formatos Open XML de Microsoft Office (.docx/.xlsx/.pptx, ISO/IEC 29500:2008), layouts XML de Android, archivos de propiedades Java, configuración en casi todos los frameworks de servidor. Las fortalezas de XML son los espacios de nombres, atributos, contenido mixto (texto y elementos hijos entrelazados) y un rico ecosistema de esquemas (DTD, XML Schema 1.1, Relax NG). Su debilidad es la verbosidad, cada valor lleva una etiqueta de apertura y cierre.

JSON (JavaScript Object Notation) fue especificado por Douglas Crockford en 2001, el sitio json.org y su ensayo original «JSON: The Fat-Free Alternative to XML». JSON es intencionalmente un subconjunto de la sintaxis literal de objetos de JavaScript: objetos, arrays, strings, números, true/false/null. Estandarizado como RFC 4627 en julio de 2006, refinado como RFC 7159 (marzo de 2014) y RFC 8259 (diciembre de 2017, estándar STD 90 actual, también publicado por ECMA como ECMA-404). La toma por JSON de las APIs web a XML ocurrió aproximadamente en 2008-2014, el calendario coincide con el auge de las single-page apps y la era de las APIs móviles. Hoy casi cada API pública se documenta como JSON; XML sobrevive principalmente en integración empresarial, formatos de documento, archivos de configuración y formatos de feeds. Los dos formatos siguen en uso activo porque codifican bien cosas diferentes: JSON es adecuado para datos estructurados con tipos simples y forma predecible; XML es adecuado para documentos con contenido mixto, atributos, espacios de nombres y esquemas rigurosos.

Cuándo realmente necesitas convertir JSON a XML

El mapeo de conversión, dónde sobrevive la información y dónde se pierde

JSON y XML tienen primitivas estructurales diferentes, así que cualquier conversión debe tomar decisiones. El mapeo JSON-a-XML estándar que la mayoría de los conversores (este incluido) siguen:

Información perdida en la conversión: la distinción de JSON entre números y strings, la distinción de JSON entre true/false y strings «true»/«false», la distinción de JSON entre array y objeto (cuando un array se convierte en elementos repetidos no puedes saber solo a partir del XML si la fuente tenía un array de un elemento o un valor único). Información potencialmente ganada pero no usada por conversores simples: atributos XML (un objeto JSON podría mapear las claves a atributos en lugar de elementos hijos), espacios de nombres XML (JSON no tiene nada equivalente), secciones CDATA (para incrustar texto con caracteres especiales XML). Para una conversión JSON-a-XML segura para ida y vuelta que preserve la información de tipo, la convención BadgerFish o la convención Parker codifican los tipos JSON como atributos XML con espacios de nombres, esta herramienta produce la forma más simple y legible en lugar de la forma segura para ida y vuelta.

Las restricciones de nombre de etiqueta XML que las claves JSON no tienen

Las claves de objeto JSON son cadenas arbitrarias, cualquier Unicode está permitido. Los nombres de elementos XML están mucho más restringidos: deben empezar con una letra o un guion bajo (no un dígito, guion ni punto), pueden contener letras, dígitos, guiones, guiones bajos y puntos (sin espacios, sin la mayoría de la puntuación), distinguen mayúsculas y minúsculas, y no pueden empezar con el prefijo reservado xml en ninguna combinación de mayúsculas/minúsculas. Las claves JSON con espacios ("first name": "Alice"), claves que empiezan con dígitos ("3rd_choice"), o claves con caracteres especiales ("@type", "$value") no pueden usarse como nombres de elementos XML directamente. La mayoría de los conversores (este incluido) deforman silenciosamente los caracteres inválidos, reemplazan espacios por guiones bajos, anteponen un guion bajo a las claves que empiezan con dígitos, eliminan la mayoría de la puntuación. Sé consciente de esto al hacer ida y vuelta: un documento JSON con claves no-seguras-para-XML no hará un viaje de ida y vuelta idénticamente a través de XML.

Donde XML aún reina en 2026

XML no está en retirada en 2026, solo se ha asentado en nichos específicos. Formatos de documento: Office Open XML (Microsoft Office), OpenDocument (LibreOffice), ebooks EPUB, SVG (Recomendación W3C 4 de septiembre de 2001), MathML, XHTML. Configuración: servidores de aplicación Java, contextos Spring XML, POM de Maven, recursos XML de Android, archivos app.config y web.config de .NET. Feeds: RSS 2.0, Atom 1.0 (RFC 4287), feeds de podcasts (las extensiones RSS de iTunes). Intercambio sanitario y gubernamental: HL7 v3, FHIR (que ahora ofrece JSON como alternativa pero la forma XML sigue en uso intensivo), DocBook, NewsML, ISO 20022 bancaria. Organismos de estándares: casi todo ejemplo de especificación IETF y W3C usa XML. La verbosidad de XML es una característica en esos dominios: es autodescriptivo, validar contra un esquema está bien establecido, y las transformaciones XSLT entre dialectos XML son una caja de herramientas madura. El formato no se va a ningún lado; la conversión JSON-a-XML es el puente entre el tooling de datos moderno y estos sistemas XML-nativos establecidos.

Privacidad: conversión solo en el navegador

El JSON pegado en un conversor a menudo contiene datos de producción reales, respuestas de API con identificadores de usuario, IDs internos de entidad que revelan la taxonomía empresarial, valores de configuración que incluyen URLs de endpoints y feature flags, tokens, contenido borrador no publicado todavía. Los conversores del lado del servidor toman una copia de cada entrada en sus logs. Este conversor parsea tu JSON con el JSON.parse() integrado del navegador, recorre el árbol de objetos resultante en JavaScript y emite XML como una cadena, todo dentro de tu pestaña del navegador. Verifica en la pestaña Red de DevTools mientras haces clic en Convert (no se dispara ninguna petición), o pon la página sin conexión (modo avión) tras cargarla y el conversor sigue funcionando. Seguro para respuestas de API de producción, configuración interna, contenido borrador, o cualquier JSON que no quisieras ver copiado en el disco duro de un extraño.

Preguntas frecuentes

¿Cómo se convierten los arrays JSON?

Cada elemento del array se convierte en un elemento hijo separado. {"colors": ["red", "blue"]} se convierte en <colors><item>red</item><item>blue</item></colors>. El nombre de elemento convencional para entradas de array sin nombre es <item>. Si tu consumidor aguas abajo espera una convención diferente (p. ej., forma singular del nombre del padre como <color>), tendrás que post-procesar el XML o usar un conversor diferente que soporte el nombrado personalizado de elementos de array.

¿Funciona con archivos JSON grandes?

Sí, como todo se ejecuta en tu navegador, el techo práctico es la memoria disponible de tu dispositivo. Decenas de miles de líneas de JSON se convierten en mucho menos de un segundo en un portátil moderno. Entradas muy grandes (multi-MB) pueden congelar brevemente la pestaña mientras el parser recorre el árbol. Para conversión por lotes de grandes datasets, un script usando un conversor del lado del servidor (xml2js en Node, dicttoxml en Python) es más apropiado.

¿Se sube mi JSON a un servidor?

No. La conversión se ejecuta enteramente en tu navegador, el JSON pegado nunca sale de tu dispositivo. Verifica en la pestaña Red de DevTools mientras haces clic en Convert (no se dispara ninguna petición), o pon la página sin conexión (modo avión) tras cargarla. Seguro para respuestas de API de producción, configuración interna, o cualquier dato que no quisieras compartir externamente.

¿Puedo hacer que algunas claves JSON se conviertan en atributos XML en lugar de elementos hijos?

Este conversor emite todas las claves JSON como elementos hijos, no como atributos. La convención que algunos conversores usan (claves prefijadas con @ se convierten en atributos ("@id": 5id="5" en el padre)) es la convención BadgerFish. Si tu consumidor aguas abajo requiere ciertos valores como atributos, necesitarás un conversor personalizado que entienda la convención, o editar a mano el XML resultante.

¿Qué pasa con las claves JSON que contienen espacios o caracteres XML inválidos?

Los nombres de elementos XML tienen reglas más estrictas que las claves JSON: deben empezar con una letra o guion bajo, no pueden contener espacios y no permiten la mayoría de la puntuación. Las claves con caracteres inválidos se sanitizan, los espacios se vuelven guiones bajos, los dígitos iniciales reciben un prefijo de guion bajo, los caracteres especiales se eliminan. Esto significa que un viaje de ida y vuelta JSON → XML → JSON puede no producir los nombres de claves originales exactamente. Si tus datos tienen claves inusuales, inspecciona la salida para asegurarte de que la deformación no rompió nada importante.

Herramientas relacionadas