JSON a XML
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.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
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.
Qué puede hacer con ella
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 frecuentes
¿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.
¿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.
¿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.
¿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.
¿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.
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, y pronto desde nuestra app, el email y Telegram.
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 '{"input":"…"}'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({
"input": "…"
})
});
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={
"input": "…"
},
)
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" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
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
{
"input": "…"
}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. |