JSON vs JSONL: ¿Cuál es la diferencia?

Una guía completa para entender los formatos JSON y JSONL (JSON Lines), sus diferencias y cuándo usar cada uno.

Última actualización: febrero 2026

Comparación rápida

CaracterísticaJSONJSONL (JSON Lines)
EstructuraUn solo objeto o arrayUn objeto JSON por línea
Extensión de archivo.json.jsonl o .ndjson
AnálisisDebe analizar el archivo completoPuede analizar línea por línea
StreamingDifícilSoporte nativo
Archivos grandesAlto consumo de memoriaEficiente en memoria
LegibilidadFormateado con indentaciónCompacto, un registro por línea
Validación de esquemaJSON Schema compatibleJSON Schema por línea
Agregar datosDebe reescribir el archivo completoSimplemente agregar una nueva línea

¿Qué es JSON?

JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos que es fácil de leer y escribir para los humanos, y fácil de analizar y generar para las máquinas. Se basa en un subconjunto de JavaScript y se ha convertido en el estándar de facto para el intercambio de datos en la web.

Un archivo JSON contiene un solo valor JSON, generalmente un objeto o un array. El archivo completo debe analizarse como una unidad para acceder a cualquier dato dentro de él.

Ejemplo de JSON
[
{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "London"},
{"name": "Charlie", "age": 35, "city": "Tokyo"}
]

¿Qué es JSONL (JSON Lines)?

JSONL (JSON Lines), también conocido como Newline Delimited JSON (NDJSON), es un formato de texto donde cada línea es un objeto JSON válido. Las líneas están separadas por caracteres de nueva línea (\n). A diferencia del JSON estándar, no hay un array u objeto envolvente alrededor de los datos.

Cada línea en un archivo JSONL es independiente y puede analizarse de forma individual. Esto hace que JSONL sea ideal para streaming de datos, archivos de registro y procesamiento de grandes conjuntos de datos sin cargar todo en memoria.

Ejemplo de JSONL
{"name": "Alice", "age": 30, "city": "New York"}
{"name": "Bob", "age": 25, "city": "London"}
{"name": "Charlie", "age": 35, "city": "Tokyo"}

Diferencias clave entre JSON y JSONL

1. Formato y estructura del archivo

JSON

JSON envuelve todos los datos en un solo objeto o array. El archivo debe ser sintácticamente válido en su totalidad: un corchete faltante al final invalida todo el archivo.

JSONL

JSONL almacena un objeto JSON por línea. Cada línea es independiente: si una línea tiene un error, las demás líneas aún pueden analizarse.

2. Análisis y uso de memoria

JSON

JSON requiere cargar y analizar el archivo completo de una vez. Un archivo JSON de 1 GB necesitaría aproximadamente 1 GB o más de memoria para analizarse.

JSONL

JSONL puede leerse y analizarse línea por línea (streaming). Incluso un archivo JSONL de 10 GB puede procesarse con un uso mínimo de memoria leyendo una línea a la vez.

3. Streaming y datos en tiempo real

JSON

JSON no está diseñado para streaming. No puedes comenzar a procesar datos hasta que se reciba y analice el archivo o la respuesta completa.

JSONL

JSONL es ideal para streaming. Cada línea puede procesarse tan pronto como se recibe, lo que lo hace perfecto para flujos de datos en tiempo real, registros y eventos enviados por el servidor.

4. Agregar y escribir datos

JSON

Agregar datos a un array JSON requiere leer el archivo completo, analizarlo, añadir el nuevo elemento y reescribir el archivo entero.

JSONL

Agregar datos a un archivo JSONL es tan simple como añadir una nueva línea al final. No es necesario leer ni modificar los datos existentes. Esto es O(1) frente a O(n) para JSON.

5. Legibilidad humana

JSON

JSON soporta formato con indentación, lo que lo hace muy legible para archivos de configuración y respuestas de API.

JSONL

JSONL es compacto por diseño: un registro por línea. Está optimizado para el procesamiento por máquinas más que para la lectura humana, aunque las líneas individuales pueden formatearse.

Cuándo usar JSON vs JSONL

JSONUsa JSON cuando:
  • Trabajas con archivos de configuración
  • Construyes cuerpos de solicitud/respuesta de API REST
  • Almacenas datos estructurados pequeños (menos de 10 MB)
  • Los datos necesitan ser legibles y editables por humanos
  • Trabajas con estructuras de datos jerárquicas anidadas
  • Intercambio de datos del lado del navegador
JSONLUsa JSONL cuando:
  • Procesas grandes conjuntos de datos (más de 100 MB)
  • Transmites datos en tiempo real
  • Escribes archivos de registro y datos de eventos
  • Entrenas modelos de aprendizaje automático (OpenAI, Hugging Face)
  • Pipelines ETL y procesamiento de datos
  • Agregas datos con frecuencia
  • Procesas datos con herramientas Unix (grep, awk, sed)

Casos de uso comunes

Aprendizaje automático e IA

JSONL

JSONL es el formato estándar para datos de entrenamiento de ML. OpenAI utiliza JSONL para conjuntos de datos de ajuste fino, y muchos frameworks de ML esperan entrada en JSONL. Cada línea representa un ejemplo de entrenamiento.

Registro de aplicaciones

JSONL

Los registros de servidor, eventos de aplicación y registros de auditoría se adaptan naturalmente a JSONL. Cada evento se escribe como una sola línea, lo que facilita agregar, buscar con grep y procesar con herramientas de streaming.

APIs web y configuración

JSON

Las APIs REST generalmente usan JSON para los cuerpos de solicitud y respuesta. Los archivos de configuración (.json) usan JSON para configuraciones legibles y estructuradas con objetos anidados.

Big Data y analítica

JSONL

Los pipelines de datos, procesos ETL y herramientas analíticas usan JSONL para procesar grandes volúmenes de datos. Cada registro puede procesarse de forma independiente, permitiendo procesamiento paralelo y patrones MapReduce.

Ejemplos de código

Leer JSON en JavaScript
// Reading JSON - must load entire file
const data = JSON.parse(fs.readFileSync('data.json', 'utf8'));
// Access data
data.forEach(item => {
console.log(item.name);
});
Leer JSONL en JavaScript
// Reading JSONL - stream line by line
import { createReadStream } from 'fs';
import { createInterface } from 'readline';
const rl = createInterface({
input: createReadStream('data.jsonl')
});
for await (const line of rl) {
const item = JSON.parse(line);
console.log(item.name);
}
Convertir JSON a JSONL
// JSON array to JSONL
const jsonArray = JSON.parse(fs.readFileSync('data.json', 'utf8'));
const jsonl = jsonArray
.map(item => JSON.stringify(item))
.join('\n');
fs.writeFileSync('data.jsonl', jsonl);
Convertir JSONL a JSON
// JSONL to JSON array
const lines = fs.readFileSync('data.jsonl', 'utf8')
.split('\n')
.filter(line => line.trim());
const jsonArray = lines.map(line => JSON.parse(line));
fs.writeFileSync('data.json', JSON.stringify(jsonArray, null, 2));

Convertir JSON y JSONL en línea

Usa nuestras herramientas en línea gratuitas para convertir entre formatos JSON y JSONL al instante — sin instalación.

Prueba nuestro visor de JSONL

Visualiza y edita archivos JSONL de hasta 1 GB instantáneamente en tu navegador. Sin subidas, sin registro.

Preguntas frecuentes

JSON vs JSONL: ¿Cuál es la diferencia? Guía completa