Cosa fa
JSON Lines (detto anche JSONL o NDJSON) memorizza un valore JSON per riga. È il formato preferito per log, esportazioni di dati, API in streaming, caricamenti massivi in BigQuery ed Elasticsearch e dataset di machine learning come i file di fine-tuning di OpenAI, perché un programma può leggere o aggiungere un record alla volta senza caricare l’intero file.
Molti strumenti però si aspettano un unico array JSON. Questo convertitore trasforma JSON Lines in un array JSON formattato e un array JSON di nuovo in JSON Lines, con un record compatto per riga.
Come si usa
- Scegli la Direzione: JSON Lines → JSON oppure JSON → JSON Lines.
- Incolla i dati, carica un file
.jsonl,.ndjsono.json, oppure fai clic su Esempio. - Per l’output JSON scegli un rientro di 2 o 4 spazi, oppure Compatto per una sola riga.
- Copia o scarica il risultato, oppure usa Usa come input per riconvertirlo.
Se una riga non è JSON valido, l’errore indica numero di riga e colonna, così puoi andare dritto al record rotto: utile quando un log ha una voce troncata tra migliaia.
Esempio
Queste tre righe di JSON Lines:
{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}
diventano questo array JSON:
[
{
"id": 1,
"event": "signup"
},
{
"id": 2,
"event": "login"
},
{
"id": 3,
"event": "logout"
}
]
Nella direzione opposta, ogni elemento dell’array viene scritto su una riga, senza spazi, e il file termina con un a capo.
Quando usare l’uno o l’altro
Usa JSON Lines quando i record vengono prodotti o consumati uno alla volta: aggiunte ai log, risultati in streaming, suddivisione di un grande dataset tra più worker o elaborazione con strumenti per riga come grep, head e wc -l. Usa un array JSON quando un programma ha bisogno dell’intera collezione in una volta, come un file di configurazione, dati di test o il corpo di risposta di un endpoint REST.
Domande frequenti
› Che differenza c’è tra JSONL, NDJSON e JSON Lines?
Sono nomi dello stesso formato: un valore JSON completo per riga, separato da a capo. JSON Lines (.jsonl) e JSON delimitato da newline (.ndjson) differiscono solo per nome ed estensione.
› Le righe vuote sono ammesse?
Durante la lettura le righe vuote e l’a capo finale vengono ignorati. Sono gestiti anche i fine riga Windows (CRLF) e il BOM UTF-8.
› Il mio file è JSON formattato e un oggetto occupa più righe. Perché non funziona?
In JSON Lines ogni valore deve stare su una sola riga. Se l’input è un normale array JSON, imposta la direzione su JSON → JSON Lines; se è una sequenza di oggetti formattati, mettili prima in un array.
› La conversione modifica numeri o ordine delle chiavi?
No. Valori e ordine delle chiavi restano invariati; cambiano solo gli spazi. Interi molto grandi oltre l’intervallo sicuro di JavaScript (circa 9 milioni di miliardi) possono perdere precisione, come in qualsiasi strumento JSON nel browser.