JSON a CSV
En el momento en que su JSON tiene un objeto anidado o un arreglo dentro de un campo, eso de "solo conviértalo a CSV" deja de ser trivial, porque una hoja de cálculo no tiene un concepto nativo de documento dentro de una celda. Este endpoint aplana JSON anidado en columnas consistentes y bien nombradas, así que el archivo resultante se abre limpio en cualquier hoja de cálculo en lugar de mostrar un muro de texto con llaves y corchetes ilegible.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
El desajuste entre documentos y filas
El JSON está construido para anidar: un pedido puede contener un objeto de cliente, que a su vez contiene una dirección, que a su vez contiene un arreglo de pedidos anteriores, cada uno con sus propias líneas de producto. El CSV no tiene forma de expresar eso; es, en esencia, una cuadrícula de filas y columnas, un registro plano por línea. Quien haya intentado programar esta conversión a mano conoce el fallo habitual: una herramienta ingenua serializa la parte anidada y vuelca un bloque de llaves escapadas en una sola celda, lo cual técnicamente "funciona" pero produce una hoja que nadie puede filtrar ni ordenar.
Cómo se comporta realmente el aplanado
Envíe su arreglo o documento JSON a POST /data/json-to-csv y los objetos anidados se despliegan en columnas con notación de punto, de modo que address.city queda junto a address.country en lugar de enterrado dentro de un solo bloque, mientras que los arreglos de valores simples se combinan de forma predecible y los arreglos de objetos se expanden según la forma de sus datos, así que las líneas de un pedido se convierten en columnas legibles en vez de una cadena opaca. Las cabeceras se derivan directamente de la estructura de su JSON, así que el mapeo hacia la columna de salida queda claro para quien abra el archivo después.
Por qué esto sigue importando cuando todo es una API
Sería fácil suponer que el CSV es cosa del pasado ahora que la mayoría de los sistemas intercambian JSON de forma nativa, pero la hoja de cálculo sigue siendo la interfaz en la que confían las personas no técnicas. Finanzas concilia en hojas de cálculo, operaciones construye tablas dinámicas a partir de ellas, y muchas herramientas de negocio todavía solo aceptan CSV como formato de importación. Convertir la salida de una API a CSV tiene menos que ver con la tecnología y más con encontrarse con la gente donde ya trabaja.
Manejo de registros irregulares sin romper la cuadrícula
Las colecciones de JSON reales rara vez son perfectamente uniformes: un pedido tiene un campo de descuento y el siguiente no, un cliente tiene tres teléfonos y otro no tiene ninguno. La conversión reconcilia las formas distintas entre registros en una sola fila de cabecera consistente, rellenando los campos ausentes en lugar de desplazar columnas, que es la forma más común en que los conversores hechos a mano corrompen una hoja en silencio.
Encaje en reportes automatizados
Como la tarea corre de forma asíncrona, funciona bien al final de un pipeline de reportes: extrae registros desde la API de su aplicación, convierte el JSON resultante a CSV aquí, y entrega el archivo directamente a la bandeja de un analista o a una unidad compartida sin que un script tenga que vigilar la transformación. Recibe un task_id de inmediato y el CSV llega por webhook, listo para adjuntar o reenviar.
Qué puede hacer con ella
Exportación financiera semanal
Convierta el JSON de pedidos o transacciones que trae de su API en un CSV que el equipo de finanzas puede abrir directamente en una hoja de cálculo para conciliar.
Entrega de datos a un CRM
Convierta registros de clientes anidados, incluyendo arreglos de contactos o interacciones, en un CSV plano que un equipo de ventas puede importar a sus herramientas actuales.
Importación a una herramienta de analítica
Aplane JSON de eventos o registros de actividad en CSV para herramientas de inteligencia de negocio que solo aceptan archivos tabulares.
Entregable para un cliente
Empaquete los resultados de una API como un adjunto CSV limpio para un cliente no técnico, en vez de enviarle JSON crudo que no puede abrir.
Preguntas frecuentes
¿Cómo maneja esta API de JSON a CSV los objetos anidados?
Los objetos anidados se aplanan en columnas con notación de punto, como address.city, así que cada valor obtiene su propia columna legible en lugar de quedar embebido como texto JSON crudo.
¿Qué pasa con los arreglos dentro de mi JSON?
Los arreglos de valores simples se combinan de forma predecible dentro de una columna, y los arreglos de objetos, como las líneas de un pedido, se expanden en su propio conjunto de columnas en lugar de colapsarse en una cadena ilegible.
¿Puede manejar registros JSON con campos inconsistentes?
Sí, la conversión reconcilia las distintas formas de registro en una sola fila de cabecera consistente, rellenando los campos ausentes para que las columnas nunca se desalineen.
¿Hay una prueba gratuita para el endpoint de JSON a CSV?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Puedo convertir arreglos JSON grandes con miles de registros?
Sí, envíe el arreglo como una solicitud asíncrona y se procesa como una sola tarea; para exportaciones muy grandes o recurrentes, dividir por rango de fecha o por ID es una práctica común.
¿Qué pasa si falla la conversión de JSON a CSV?
Se reintenta automáticamente hasta tres veces; si aun así falla, recibe un error claro y no se le cobra por el intento.
¿Cómo recibo el archivo CSV generado?
Mediante un webhook firmado, recomendado para flujos automatizados, o un enlace firmado válido durante 24 horas si prefiere descargarlo manualmente.
¿Cuánto cuesta convertir JSON a CSV?
$0.002 por solicitud, cobrado únicamente cuando la conversión se completa con éxito.
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-csv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/json-to-csv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/json-to-csv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/json-to-csv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/json-to-csv", 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
{
"text": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.json_to_csv",
"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. |