Di Jerry FanAggiornato il giugno 2026

Cos'è JSONL? Guida completa al formato JSON Lines

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

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":"[email protected]"'}'
'{'"id":2,"name":"Bob","email":"[email protected]"'}'
'{'"id":3,"name":"Charlie","email":"[email protected]"'}'
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

Riferimenti