XML a JSON
Transforma documentos XML en JSON limpio y predecible.
Funciona por completo en tu navegador. Nada de lo que pegues aquí se envía a ningún sitio.PrivadoXML
JSON
Sobre esta herramienta
Pega un documento XML —una respuesta SOAP, un feed RSS, un POM de Maven, un fichero de configuración— y léelo como JSON mientras escribes. La conversión sigue la convención que usan la mayoría de librerías: cada elemento pasa a ser una clave, los hermanos repetidos forman un array, los atributos se convierten en claves con el prefijo @ y el texto que convive con atributos o elementos hijos va en #text. Un elemento que solo contiene texto se convierte en ese texto, y uno vacío en una cadena vacía.
Los valores que son claramente números o booleanos se convierten, pero solo cuando el JSON escribiría exactamente los mismos caracteres, así que un código postal como 02108, un precio como 1.10 o un ID demasiado largo para un double siguen siendo strings. Las entidades se decodifican, el contenido CDATA se conserva tal cual y la indentación entre elementos se descarta salvo que el documento indique xml:space="preserve". Los comentarios, la declaración XML y el doctype no contienen datos y se omiten.
Si el XML está roto, el error se indica por línea y columna con la etiqueta culpable subrayada, y el último resultado válido sigue visible debajo. Si la entrada llega escapada dentro de un string JSON o codificada como URL, primero se desenvuelve, y las licencias habituales de los documentos reales —atributos sin comillas, atributos sin valor, más de una raíz— se aceptan y se señalan bajo la entrada.
Nada de lo que pegas se transmite. La página es HTML estático y el analizador se ejecuta en tu pestaña, así que puedes convertir aquí respuestas de API con datos de clientes o nombres de hosts internos.
Preguntas frecuentes
¿Se sube mi XML a algún servidor?
No. La conversión es JavaScript que se ejecuta en tu navegador y no hay ningún endpoint al que enviarla. Puedes desconectarte de la red después de cargar la página y sigue funcionando.
¿Cómo se representan los atributos y los elementos repetidos?
Los atributos se convierten en claves con el prefijo @ —o _ o -, si el código que consume el JSON lo prefiere—, así que id="7" queda como "@id": 7. Un elemento que aparece más de una vez bajo el mismo padre se convierte en un array. Como un elemento que aparece una sola vez es un valor simple, la forma puede cambiar entre dos documentos; activa «Usar siempre arrays» para envolver cada elemento hijo en un array y obtener siempre la misma estructura.
¿Por qué algunos números se quedan como strings?
Un número solo se convierte si JSON lo escribiría exactamente igual. 007 perdería los ceros, 1.10 pasaría a ser 1.1 y un ID de 20 dígitos perdería precisión, así que esos valores se quedan como strings. Desactiva «Detectar números y booleanos» para mantener todos los valores como strings, tal como estaban en el XML.
¿Qué hace «Quitar namespaces»?
Elimina prefijos como soap: o xsi: de los nombres de elementos y atributos y descarta las declaraciones xmlns, de modo que soap:Envelope pasa a ser Envelope. Hace mucho más fáciles de leer y consultar los mensajes SOAP y Atom, pero dos elementos de namespaces distintos con el mismo nombre local acabarán compartiendo clave.
¿Qué no admite?
Convertir JSON de vuelta a XML, ni las entidades declaradas en un DTD como , que se conservan tal cual en lugar de adivinar su valor. El contenido mixto —texto con etiquetas intercaladas, como en XHTML— se aplana: los trozos de texto se unen en #text y se pierde su posición respecto a las etiquetas. Los documentos de varios megabytes se convierten, con una breve pausa mientras escribes.
¿Es realmente gratis?
Sí, sin cuenta y sin límite de uso. El sitio se financia con anuncios colocados alrededor de la herramienta, nunca dentro de tu área de trabajo.