JSON a XML
Entregue datos a un sistema que solo lee XML: en el ejemplo, un pedido con id A-1 y total 85.00 más la clienta Ada se convierte en un documento dentro de un elemento factura, cada valor en su propia etiqueta. Los caracteres especiales se escapan. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
gratis en su navegador, o por API
Por qué los sistemas antiguos siguen pidiendo XML
Detrás de muchos servicios modernos hay un sistema más antiguo que solo acepta XML: un sistema de facturación, un portal de la administración pública o una integración contable que nadie quiere rehacer. Muchas interfaces creadas en la época del intercambio de mensajes entre empresas siguen funcionando así. Escribir la conversión a mano es donde se cuelan los errores: un solo ampersand sin escapar o una etiqueta de cierre que falta dejan el documento entero ilegible para un receptor estricto. Esta herramienta escribe siempre XML bien formado a partir de sus datos, para que pueda entregarlo directamente al sistema que lo espera.
Cómo cada parte de sus datos pasa a XML
Usted da nombre al elemento exterior, factura en el ejemplo. Dentro de él, cada nombre de sus datos se convierte en un elemento con su valor, las secciones anidadas se convierten en elementos anidados, cada elemento de una lista repite el nombre y un valor vacío pasa a ser un elemento vacío. Los caracteres especiales se escapan y el documento empieza con una declaración de versión 1.0 en UTF-8, sangrado con dos espacios por nivel. En el ejemplo, pedido contiene id A-1 y total 85.00, seguido de cliente con Ada. Cada entrada se convierte en elemento y no en atributo, así que compare el resultado con la especificación del receptor.
Preguntas frecuentes
¿El XML resultante valida contra esquemas estrictos?
El resultado es XML bien formado con un mapeo consistente de elementos y atributos; si su sistema destino exige un esquema específico, indique las reglas de mapeo para que la estructura coincida.
¿Puedo controlar qué campos se convierten en atributos?
Sí, las convenciones de nombres de claves en la solicitud le permiten marcar campos específicos para que se generen como atributos de XML en lugar de elementos hijos.
¿Cómo elijo el nombre del elemento exterior?
Indique el nombre que quiere para la raíz, como factura en el ejemplo, y todo el documento queda envuelto en él. Si lo deja vacío, el elemento exterior se llama simplemente root.
¿Cómo se convierten las listas en XML?
Cada elemento de una lista se convierte en su propio elemento que repite el nombre de la lista, uno detrás de otro. Es la forma habitual en que el XML expresa una serie de valores, y la que esperan la mayoría de los sistemas receptores.
¿Se tratan bien los caracteres especiales como &?
Sí. Los caracteres que tienen un significado especial en XML, como el ampersand o los signos de menor y mayor, se escapan dentro de los valores, de modo que el documento sigue bien formado y un sistema estricto no lo rechaza.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/json-to-xml \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"json":{"a":1}}'const res = await fetch("https://api.kit.forhosting.com/data/json-to-xml", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"json": {
"a": 1
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/json-to-xml",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"json": {
"a": 1
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/json-to-xml", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"json":{"a":1}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"json":{"a":1}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/json-to-xml", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"json": {
"a": 1
}
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.json_to_xml",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Detrás de casi cualquier API moderna en JSON suele haber un sistema más antiguo que solo acepta XML: una plataforma de facturación, un portal gubernamental, una integración con ERP que nadie quiere reconstruir. Este endpoint conecta esos dos mundos, generando XML bien formado a partir de su JSON sin que tenga que escribir un serializador a mano.
El sentido que a nadie le gusta construir
Los equipos escriben serializadores de JSON a XML con mucha menos frecuencia que a la inversa, y se nota: las implementaciones improvisadas producen XML que técnicamente se puede parsear pero falla apenas llega a un validador estricto, porque JSON no tiene un concepto nativo de atributos, espacios de nombres u orden de elementos como sí tiene XML. Alguien tiene que decidir, por convención, qué claves de JSON se convierten en atributos y cuáles en elementos hijos, y acertar esa decisión de forma consistente en miles de registros. data.json_to_xml toma esa decisión de manera predecible, siempre, para que el resultado sea XML que un sistema estricto realmente acepte y no XML que solo parece correcto.
Enviar la solicitud y recibir el XML
Envíe su JSON por POST a /data/json-to-xml junto con el nombre del elemento raíz deseado, y recibirá un task_id de inmediato mientras la conversión corre en segundo plano. El documento XML resultante llega mediante una llamada de webhook firmada o queda disponible en un enlace firmado válido por 24 horas, listo para entregarse al sistema que lo esté esperando.
Por qué el formato antiguo todavía tiene la última palabra
Una cantidad sorprendente de interfaces construidas en la era de SOAP y EDI, y muchas integraciones gubernamentales y financieras hechas desde entonces, todavía hablan XML estricto porque así se construyó su validación de esquema, su infraestructura de firma digital o su capa de cumplimiento normativo, y reescribir esa capa cuesta mucho más que adaptar el payload al entrar. Los equipos modernos cada vez construyen todo internamente en JSON y solo generan XML en el último tramo, justo antes de cruzar hacia el sistema que lo exige, que es exactamente el flujo de trabajo que este endpoint está pensado para apoyar.
Dónde encaja en el flujo
Un montaje típico mantiene el modelo de datos interno de un servicio completamente en JSON y solo llama a este endpoint en el borde de salida, convirtiendo cada registro a XML justo antes de enviarlo a una API de un socio, una pasarela SOAP o un proceso de importación heredado. Como la tarea es asíncrona y se cobra por solicitud, una exportación nocturna de varios miles de registros cuesta lo mismo por documento sin importar si se envía como un solo lote a medianoche o poco a poco durante el día, y no se cobra nada a menos que la conversión realmente se complete.
Casos de integración
Armado de solicitudes SOAP
Un servicio de integración convierte registros internos de pedidos en JSON a XML antes de envolverlos en una solicitud SOAP para un socio de logística heredado.
Envíos a portales gubernamentales
Un sistema de cumplimiento convierte datos de impuestos o aduanas en JSON al formato XML estricto que exige un portal gubernamental antes de subirlo.
Generación de feeds para sindicación
Una plataforma editorial convierte registros internos de artículos en JSON a XML para generar feeds compatibles con RSS para sus suscriptores.
Archivos de importación para ERP
Una herramienta financiera convierte lotes de facturas en JSON al formato XML de importación que espera un ERP heredado, evitando la digitación manual.
Preguntas técnicas
¿Cómo convierto JSON a XML con la API?
Envíe su JSON y el nombre del elemento raíz por POST a /data/json-to-xml, guarde el task_id devuelto y reciba el XML por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API para convertir JSON a XML?
No, no hay plan gratuito ni prueba; cuesta $0.002 por solicitud, y una conversión fallida nunca se cobra.
¿Cómo se representan los arreglos de JSON en XML?
Los elementos de un arreglo se convierten en elementos hermanos repetidos bajo su elemento padre, tal como la mayoría de los consumidores de XML esperan ver los datos repetidos.
¿Esto es distinto a simplemente envolver el JSON en etiquetas?
Sí: una conversión adecuada maneja correctamente el anidamiento, los arreglos, los atributos, el escape de caracteres y la codificación, algo que envolver etiquetas a mano no hace.
¿Puedo convertir lotes grandes de una vez?
Sí, envíe una tarea asíncrona por documento y reciba cada resultado por webhook, lo cual escala bien para procesos por lote y trabajos nocturnos.
¿Se guardan mis datos JSON después de la conversión?
No, los datos de origen y el XML generado se eliminan después del período de retención y nunca se usan para entrenamiento.