Conversor JSON Lines (JSONL) ⇔ Array JSON
Convierte entre el formato JSON Lines (un objeto JSON por línea) y un array JSON estándar. Útil para revisar conjuntos de datos de machine learning y salidas de registros.
Qué es JSON Lines (JSONL)
JSON Lines es un formato en el que cada línea contiene un objeto JSON. El archivo en su conjunto no es JSON, lo que significa que no hay comas finales que gestionar y que añadir registros se reduce a añadir líneas. Se usa mucho allí donde los datos fluyen de uno en uno: registros de aplicación, conjuntos de entrenamiento para aprendizaje automático y cargas masivas en BigQuery o Elasticsearch. Las extensiones habituales son `.jsonl` y `.ndjson`.
Esta herramienta convierte entre JSON Lines y un array JSON en ambos sentidos. Al pasar de JSONL a array se omiten las líneas en blanco y se informa de cualquier línea que no sea JSON válido. En sentido contrario, la entrada debe tener un array en el nivel superior o la conversión falla. Todo se ejecuta en su navegador, de modo que los registros y los datos de entrenamiento que prefiere no enviar a ninguna parte permanecen en su equipo.
Cómo convertir entre JSONL y un array JSON
- Elija el sentido De JSONL a array JSON, o de array JSON a JSONL.
- Pegue los datos Para JSONL, un objeto por línea. Para un array, pegue el texto que empieza por `[` tal cual.
- Si aparece un error, revise esa línea El mensaje indica qué línea no pudo analizarse. Una coma final o una comilla sin cerrar son las causas habituales.
- Copie el resultado Guarde la salida en un archivo o entréguela directamente al siguiente paso de su proceso.
Consejos para aprovecharla mejor
- JSON Lines (JSONL) es un formato que coloca un objeto JSON independiente por línea, utilizado habitualmente en los conjuntos de datos de fine-tuning de OpenAI y en la salida de registros de herramientas como Elasticsearch/Logstash.
- En el modo "JSONL → Array JSON", cada línea debe ser un objeto JSON que se pueda analizar por separado. Las líneas en blanco se omiten automáticamente.
- En el modo "Array JSON → JSONL", toda la entrada debe ser un único array JSON (`[ ... ]`). Cada elemento del array se genera como una línea de JSONL.
- Al convertir un archivo de registro grande de JSONL a un array JSON, resulta más fácil trabajar con él usando el comando `jq` o el analizador de arrays JSON estándar de tu lenguaje de programación.
Dónde ayuda esta conversión
Entregar registros a una herramienta de análisis
Los registros de aplicación escritos de uno por línea pasan a ser utilizables por herramientas y bibliotecas orientadas a arrays una vez reunidos en un array JSON.
Preparar datos de aprendizaje automático
Los conjuntos de entrenamiento suelen distribuirse como JSONL mientras que los guiones de preprocesado esperan un array. Esto tiende el puente entre ambos.
Cargar en BigQuery o Elasticsearch
Ambos aceptan JSON delimitado por saltos de línea como formato de entrada, así que un array que ya tenga puede convertirse en algo que ingieran.
Hacer que un JSON grande pueda tratarse línea a línea
Un array debe leerse entero antes de empezar a procesar; como JSONL puede tratarse de una línea cada vez.
Términos de JSON Lines
- JSON Lines (JSONL)
- Un formato con un valor JSON por línea. **El archivo en su conjunto no es JSON válido**, porque varios valores quedan uno junto a otro. Su ventaja es que cada línea puede leerse de forma independiente.
- NDJSON
- Abreviatura de Newline Delimited JSON, esencialmente lo mismo que JSON Lines. De ahí procede la extensión `.ndjson`.
- Procesamiento en flujo
- Tratar los datos desde el principio según van llegando, sin cargarlos por completo antes. JSONL encaja con este enfoque, y por eso ambos suelen ir de la mano.
- Nivel superior
- El valor más externo de un documento JSON. Convertir a JSONL exige un array `[...]` aquí; un objeto `{...}` no puede convertirse.
- Líneas en blanco
- En JSONL las líneas en blanco no significan nada. Esta herramienta las omite, así que un salto de línea suelto al final de un archivo no rompe la conversión.
Preguntas frecuentes
A propósito — Por qué nació el formato de "un registro por línea"
El formato JSON Lines (también llamado JSONL) surgió porque un array JSON estándar tiene una limitación fundamental: no se puede obtener ni un solo registro hasta que todo el array se ha cargado en memoria y analizado por completo. Intentar tratar como un único array JSON datos de registro o conjuntos de entrenamiento de machine learning de varios millones de líneas obligaba a cargar el archivo entero en memoria, lo que provocaba problemas de falta de memoria y tiempos de análisis desmesurados en archivos muy grandes.
JSON Lines resuelve este problema con una regla sencilla: una línea equivale a un objeto JSON completo. Como el archivo se puede leer y analizar línea a línea a medida que avanza, no hace falta cargarlo entero en memoria, lo que lo hace muy adecuado para el procesamiento en streaming y en paralelo. Esta filosofía de diseño también encaja bien con la tradición Unix de tratar el texto "un registro por línea" (comandos como `grep`, `awk` y `sed` operan línea a línea), lo que supone una gran ventaja práctica al poder integrarse directamente en las herramientas de línea de comandos ya existentes.
Hoy en día se ha adoptado ampliamente como formato de distribución de conjuntos de datos en el ámbito de la IA y el machine learning, y es habitual que los datos de entrenamiento de grandes modelos de lenguaje y los pares de prompt/respuesta para fine-tuning se distribuyan en formato JSON Lines.