Cos'è JSONL? Guida completa al formato JSON Lines

Tutto quello che devi sapere su JSON Lines — sintassi, esempi, casi d'uso e best practice.

Ultimo aggiornamento: febbraio 2026

Cos'è JSONL?

JSONL (JSON Lines), noto anche come Newline Delimited JSON (NDJSON), è un formato di dati basato su testo in cui ogni riga è un valore JSON valido, separato da caratteri di nuova riga. A differenza del JSON standard, che avvolge i dati in un singolo array o oggetto, JSONL memorizza un record per riga.

Questo design semplice rende JSONL ideale per lo streaming, il logging e l'elaborazione di grandi set di dati — ogni riga può essere letta, analizzata ed elaborata indipendentemente senza caricare l'intero file in memoria.

Il formato è stato reso popolare da strumenti e piattaforme che gestiscono volumi massivi di dati, tra cui OpenAI (per set di dati di fine-tuning), BigQuery, Apache Spark e sistemi di gestione dei log.

Regole di sintassi JSONL

Il formato JSONL segue poche semplici regole:

  • Ogni riga deve essere un valore JSON valido (oggetto, array, stringa, numero, booleano o null)
  • Le righe sono separate da caratteri di nuova riga (\n)
  • Nessuna virgola o separatore tra le righe
  • I file devono usare la codifica UTF-8
  • La nuova riga finale alla fine del file è opzionale
  • Le righe vuote vengono ignorate dalla maggior parte dei parser
File JSONL valido
{"name":"Alice","age":30,"city":"New York"}
{"name":"Bob","age":25,"city":"London"}
{"name":"Charlie","age":35,"city":"Tokyo"}

Nota: Ogni riga è un oggetto JSON completo e indipendente. Non ci sono virgole tra le righe e nessun array di contenimento.

Esempi JSONL

Oggetti semplici
{"id":1,"name":"Alice","email":"alice@example.com"}
{"id":2,"name":"Bob","email":"bob@example.com"}
{"id":3,"name":"Charlie","email":"charlie@example.com"}
Oggetti annidati
{"user":{"name":"Alice","age":30},"scores":[95,87,92]}
{"user":{"name":"Bob","age":25},"scores":[88,91,76]}

Le righe JSONL non devono essere tutte dello stesso tipo — ogni riga deve solo essere JSON valido:

Tipi misti
{"event":"login","user":"alice","timestamp":"2026-01-15T10:30:00Z"}
{"event":"purchase","user":"alice","amount":29.99,"items":["book","pen"]}
{"event":"logout","user":"alice","timestamp":"2026-01-15T11:45:00Z"}

Uno degli usi più popolari di JSONL è per i set di dati di fine-tuning di OpenAI:

PopularFormato fine-tuning di OpenAI
{"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"What is JSONL?"},{"role":"assistant","content":"JSONL is a text format where each line is a valid JSON value."}]}
{"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":"How do I read a JSONL file?"},{"role":"assistant","content":"Read the file line by line, parsing each line as JSON."}]}

Come leggere i file JSONL

I file JSONL possono essere letti con qualsiasi strumento che supporti l'elaborazione del testo riga per riga. Ecco i metodi più comuni:

Usa strumenti Unix standard per ispezionare i file JSONL:

Riga di comando
# View first 5 lines
head -n 5 data.jsonl
# Count total lines (records)
wc -l data.jsonl
# Pretty-print each line with jq
cat data.jsonl | jq .
# Filter by field value
cat data.jsonl | jq 'select(.age > 30)'

Il modulo json integrato di Python gestisce JSONL in modo naturale:

Python
import json
with open('data.jsonl', 'r') as f:
for line in f:
record = json.loads(line)
print(record['name'])

Leggi file JSONL riga per riga in Node.js:

JavaScript / Node.js
import { createReadStream } from 'fs';
import { createInterface } from 'readline';
const rl = createInterface({
input: createReadStream('data.jsonl')
});
for await (const line of rl) {
const record = JSON.parse(line);
console.log(record.name);
}

Visualizzatore JSONL online

Per un approccio visuale, usa jsonl.co per aprire e sfogliare file JSONL fino a 1 GB — nessun caricamento, tutto funziona nel tuo browser.

Come creare file JSONL

Creare file JSONL è semplice — basta scrivere un valore JSON per riga.

Python
import json
records = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Charlie", "age": 35},
]
with open('output.jsonl', 'w') as f:
for record in records:
f.write(json.dumps(record) + '\n')
JavaScript / Node.js
import { writeFileSync } from 'fs';
const records = [
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 35 },
];
const jsonl = records
.map(r => JSON.stringify(r))
.join('\n');
writeFileSync('output.jsonl', jsonl + '\n');

Si possono aggiungere commenti in JSONL?

No. La specifica JSONL non supporta i commenti. Ogni riga in un file JSONL deve essere un valore JSON valido — e JSON stesso non ha sintassi per i commenti.

Se hai bisogno di includere metadati o annotazioni insieme ai tuoi dati, le soluzioni comuni includono:

  • 1Aggiungere un campo metadati ai tuoi oggetti JSON: '{'"_comment": "dati di test", "name": "Alice"'}'
  • 2Usare un file di metadati separato accanto al tuo file JSONL
  • 3Aggiungere metadati come prima riga del file: '{'"_meta": '{'"version": "1.0", "created": "2026-01-15"'}''}'

Tieni presente che qualsiasi campo "commento" verrà analizzato come dati regolari. Le applicazioni che consumano il file JSONL dovrebbero essere progettate per ignorare i campi di metadati.

JSONL vs JSON

La differenza chiave è la struttura. JSON avvolge tutto in un singolo valore, mentre JSONL memorizza un valore per riga.

JSONJSON standard
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
JSONLJSONL (JSON Lines)
{"name":"Alice","age":30}
{"name":"Bob","age":25}
  • JSON deve essere completamente caricato in memoria per essere analizzato; JSONL può essere letto riga per riga
  • JSON ha bisogno di virgole tra gli elementi; JSONL usa le nuove righe
  • JSON è migliore per file di configurazione e API; JSONL è migliore per grandi set di dati e streaming
  • Aggiungere dati a JSON richiede la riscrittura dell'intero file; JSONL semplicemente aggiunge una nuova riga

Per un confronto dettagliato, consulta la nostra guida completa JSON vs JSONL guide.

Casi d'uso comuni

Apprendimento automatico e IA

Più popolare

JSONL è il formato standard per i dati di addestramento ML. OpenAI, Hugging Face e altre piattaforme AI usano JSONL per set di dati di fine-tuning perché ogni esempio di addestramento è una riga indipendente che può essere mescolata, campionata e trasmessa in modo efficiente.

File di log e flussi di eventi

JSONL

I sistemi di logging strutturato (ELK stack, Datadog, CloudWatch) producono log in formato JSONL. Ogni voce di log è una riga JSON, rendendo facile aggiungere nuove voci ed elaborare i log in tempo reale.

Elaborazione Big Data

JSONL

Strumenti come Apache Spark, BigQuery e AWS Athena supportano JSONL nativamente. Il formato riga per riga consente l'elaborazione parallela su sistemi distribuiti — ogni worker può elaborare un blocco di righe indipendentemente.

API di streaming

JSONL

Le API che restituiscono grandi set di risultati spesso usano lo streaming JSONL. Il client può iniziare a elaborare i risultati immediatamente man mano che arrivano, senza attendere la risposta completa.

Estensioni file JSONL

I file JSONL usano comunemente queste estensioni:

.jsonlL'estensione JSONL standard, la più ampiamente utilizzata
.ndjsonNewline Delimited JSON — tecnicamente lo stesso formato con un nome diverso
.jsonAlcuni strumenti producono JSONL con estensione .json, il che può causare confusione

Tutte e tre le estensioni contengono lo stesso formato — un valore JSON per riga. Il tipo MIME per JSONL è application/jsonl o application/x-ndjson.

Prova i nostri strumenti JSONL gratuiti

Valida la sintassi JSONL, converti tra formati e visualizza file — tutto nel tuo browser.

Prova il nostro visualizzatore JSONL

Apri, visualizza e modifica file JSONL fino a 1 GB — direttamente nel tuo browser. Nessun caricamento, 100% privato.

Domande frequenti

Cos'è JSONL? Guida al Formato JSON Lines, Esempi e Casi d...