JSON vs JSONL: Qual è la differenza?

Una guida completa per comprendere i formati JSON e JSONL (JSON Lines), le loro differenze e quando usare ciascuno.

Ultimo aggiornamento: febbraio 2026

Confronto rapido

CaratteristicaJSONJSONL (JSON Lines)
StrutturaUn singolo oggetto o arrayUn oggetto JSON per riga
Estensione file.json.jsonl o .ndjson
AnalisiDeve analizzare l'intero filePuò analizzare riga per riga
StreamingDifficileSupporto nativo
File di grandi dimensioniAlto consumo di memoriaEfficiente in memoria
LeggibilitàFormattato con indentazioneCompatto, un record per riga
Validazione schemaJSON Schema supportatoJSON Schema per riga
Aggiunta datiDeve riscrivere l'intero fileSemplicemente aggiungere una nuova riga

Cos'è JSON?

JSON (JavaScript Object Notation) è un formato leggero di scambio dati che è facile da leggere e scrivere per gli esseri umani e facile da analizzare e generare per le macchine. Si basa su un sottoinsieme di JavaScript ed è diventato lo standard de facto per lo scambio di dati sul web.

Un file JSON contiene un singolo valore JSON — tipicamente un oggetto o un array. L'intero file deve essere analizzato come un'unità per accedere a qualsiasi dato al suo interno.

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

Cos'è JSONL (JSON Lines)?

JSONL (JSON Lines), noto anche come Newline Delimited JSON (NDJSON), è un formato di testo in cui ogni riga è un oggetto JSON valido. Le righe sono separate da caratteri di nuova riga (\n). A differenza del JSON standard, non c'è un array o un oggetto che avvolge i dati.

Ogni riga in un file JSONL è indipendente e può essere analizzata individualmente. Questo rende JSONL ideale per lo streaming di dati, file di log e l'elaborazione di grandi set di dati senza caricare tutto in memoria.

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

Differenze principali tra JSON e JSONL

1. Formato e struttura del file

JSON

JSON avvolge tutti i dati in un singolo oggetto o array. Il file deve essere sintatticamente valido nel suo insieme — una parentesi mancante alla fine invalida l'intero file.

JSONL

JSONL memorizza un oggetto JSON per riga. Ogni riga è indipendente — se una riga ha un errore, le altre righe possono comunque essere analizzate.

2. Analisi e uso della memoria

JSON

JSON richiede di caricare e analizzare l'intero file in una volta. Un file JSON da 1 GB richiederebbe circa 1 GB o più di memoria per essere analizzato.

JSONL

JSONL può essere letto e analizzato riga per riga (streaming). Anche un file JSONL da 10 GB può essere elaborato con un uso minimo della memoria leggendo una riga alla volta.

3. Streaming e dati in tempo reale

JSON

JSON non è progettato per lo streaming. Non puoi iniziare a elaborare i dati finché l'intero file o la risposta non è stata ricevuta e analizzata.

JSONL

JSONL è ideale per lo streaming. Ogni riga può essere elaborata non appena viene ricevuta, rendendolo perfetto per flussi di dati in tempo reale, log ed eventi inviati dal server.

4. Aggiunta e scrittura dei dati

JSON

Aggiungere dati a un array JSON richiede la lettura dell'intero file, l'analisi, l'aggiunta del nuovo elemento e la riscrittura del file completo.

JSONL

Aggiungere dati a un file JSONL è semplice come aggiungere una nuova riga alla fine. Non è necessario leggere o modificare i dati esistenti. Questo è O(1) contro O(n) per JSON.

5. Leggibilità umana

JSON

JSON supporta la formattazione con indentazione, rendendolo molto leggibile per file di configurazione e risposte API.

JSONL

JSONL è compatto per design — un record per riga. È ottimizzato per l'elaborazione automatica piuttosto che per la lettura umana, anche se le singole righe possono essere formattate.

Quando usare JSON vs JSONL

JSONUsa JSON quando:
  • Lavori con file di configurazione
  • Costruisci corpi di richiesta/risposta di API REST
  • Memorizzi dati strutturati piccoli (sotto i 10 MB)
  • I dati devono essere leggibili e modificabili dagli esseri umani
  • Lavori con strutture dati gerarchiche annidate
  • Scambi dati lato browser
JSONLUsa JSONL quando:
  • Elabori grandi set di dati (oltre 100 MB)
  • Trasmetti dati in tempo reale
  • Scrivi file di log e dati di eventi
  • Addestri modelli di apprendimento automatico (OpenAI, Hugging Face)
  • Pipeline ETL ed elaborazione dati
  • Aggiungi dati frequentemente
  • Elabori dati con strumenti Unix (grep, awk, sed)

Casi d'uso comuni

Apprendimento automatico e IA

JSONL

JSONL è il formato standard per i dati di addestramento ML. OpenAI utilizza JSONL per set di dati di fine-tuning, e molti framework ML si aspettano input in JSONL. Ogni riga rappresenta un esempio di addestramento.

Log delle applicazioni

JSONL

I log del server, gli eventi dell'applicazione e le tracce di audit sono naturalmente adatti a JSONL. Ogni evento viene scritto come una singola riga, rendendo facile aggiungere, cercare con grep ed elaborare con strumenti di streaming.

API web e configurazione

JSON

Le API REST generalmente usano JSON per i corpi di richiesta e risposta. I file di configurazione (.json) usano JSON per impostazioni leggibili e strutturate con oggetti annidati.

Big Data e analisi

JSONL

Le pipeline di dati, i processi ETL e gli strumenti di analisi usano JSONL per elaborare grandi volumi di dati. Ogni record può essere elaborato indipendentemente, consentendo elaborazione parallela e pattern MapReduce.

Esempi di codice

Leggere JSON in 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);
});
Leggere JSONL in 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);
}
Convertire JSON in 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);
Convertire JSONL in 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));

Converti JSON e JSONL online

Usa i nostri strumenti online gratuiti per convertire istantaneamente tra formati JSON e JSONL — nessuna installazione necessaria.

Prova il nostro visualizzatore JSONL

Visualizza e modifica file JSONL fino a 1 GB istantaneamente nel tuo browser. Nessun caricamento, nessuna registrazione.

Domande frequenti

JSON vs JSONL: Qual è la differenza? Guida completa