Wat is JSONL? Volledige handleiding voor het JSON Lines-formaat

Alles wat je moet weten over JSON Lines — syntaxis, voorbeelden, toepassingen en best practices.

Laatst bijgewerkt: februari 2026

Wat is JSONL?

JSONL (JSON Lines), ook bekend als Newline Delimited JSON (NDJSON), is een op tekst gebaseerd gegevensformaat waarbij elke regel een geldige JSON-waarde is, gescheiden door newline-tekens. In tegenstelling tot standaard JSON, dat gegevens verpakt in een enkele array of object, slaat JSONL één record per regel op.

Dit eenvoudige ontwerp maakt JSONL ideaal voor streaming, logging en het verwerken van grote datasets — elke regel kan onafhankelijk worden gelezen, geparseerd en verwerkt zonder het hele bestand in het geheugen te laden.

Het formaat werd populair gemaakt door tools en platforms die enorme gegevensvolumes verwerken, waaronder OpenAI (voor fine-tuning datasets), BigQuery, Apache Spark en logbeheersystemen.

JSONL-syntaxisregels

Het JSONL-formaat volgt een paar eenvoudige regels:

  • Elke regel moet een geldige JSON-waarde zijn (object, array, string, getal, boolean of null)
  • Regels worden gescheiden door newline-tekens (\n)
  • Geen komma's of scheidingstekens tussen regels
  • Bestanden moeten UTF-8-codering gebruiken
  • Afsluitende newline aan het einde van het bestand is optioneel
  • Lege regels worden door de meeste parsers genegeerd
Geldig JSONL-bestand
{"name":"Alice","age":30,"city":"New York"}
{"name":"Bob","age":25,"city":"London"}
{"name":"Charlie","age":35,"city":"Tokyo"}

Let op: Elke regel is een compleet, op zichzelf staand JSON-object. Er zijn geen komma's tussen regels en geen omsluitende array.

JSONL-voorbeelden

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

JSONL-regels hoeven niet allemaal hetzelfde type te zijn — elke regel hoeft alleen geldige JSON te zijn:

Gemengde typen
{"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"}

Een van de populairste toepassingen van JSONL is voor OpenAI fine-tuning datasets:

PopularOpenAI Fine-Tuning formaat
{"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."}]}

Hoe JSONL-bestanden lezen

JSONL-bestanden kunnen worden gelezen met elke tool die regel-voor-regel tekstverwerking ondersteunt. Hier zijn de meest gebruikelijke methoden:

Gebruik standaard Unix-tools om JSONL-bestanden te inspecteren:

Opdrachtregel
# 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)'

De ingebouwde json-module van Python verwerkt JSONL op natuurlijke wijze:

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

Lees JSONL-bestanden regel voor regel 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);
}

Online JSONL Viewer

Voor een visuele aanpak, gebruik jsonl.co om JSONL-bestanden tot 1GB te openen en te bekijken — geen uploads, alles draait in je browser.

Hoe JSONL-bestanden maken

JSONL-bestanden maken is eenvoudig — schrijf gewoon één JSON-waarde per regel.

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');

Kan je commentaar toevoegen in JSONL?

Nee. De JSONL-specificatie ondersteunt geen commentaar. Elke regel in een JSONL-bestand moet een geldige JSON-waarde zijn — en JSON zelf heeft geen commentaarsyntaxis.

Als je metadata of annotaties naast je gegevens wilt opnemen, zijn veelgebruikte oplossingen:

  • 1Voeg een metadataveld toe aan je JSON-objecten: '{'"_comment": "testgegevens", "name": "Alice"'}'
  • 2Gebruik een apart metadatabestand naast je JSONL-bestand
  • 3Voeg metadata toe als de eerste regel van het bestand: '{'"_meta": '{'"version": "1.0", "created": "2026-01-15"'}''}'

Houd er rekening mee dat "commentaar"-velden worden geparseerd als reguliere gegevens. Applicaties die het JSONL-bestand gebruiken, moeten worden ontworpen om metadatavelden te negeren.

JSONL vs JSON

Het belangrijkste verschil is structuur. JSON verpakt alles in een enkele waarde, terwijl JSONL één waarde per regel opslaat.

JSONStandaard JSON
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
JSONLJSONL (JSON Lines)
{"name":"Alice","age":30}
{"name":"Bob","age":25}
  • JSON moet volledig in het geheugen worden geladen om te parseren; JSONL kan regel voor regel worden gelezen
  • JSON heeft komma's nodig tussen elementen; JSONL gebruikt newlines
  • JSON is beter voor configuratiebestanden en API's; JSONL is beter voor grote datasets en streaming
  • Toevoegen aan JSON vereist het herschrijven van het hele bestand; JSONL voegt gewoon een nieuwe regel toe

Voor een gedetailleerde vergelijking, bekijk onze volledige JSON vs JSONL guide.

Veelvoorkomende toepassingen

Machine Learning & AI

Meest populair

JSONL is het standaardformaat voor ML-trainingsgegevens. OpenAI, Hugging Face en andere AI-platforms gebruiken JSONL voor fine-tuning datasets omdat elk trainingsvoorbeeld een op zichzelf staande regel is die efficiënt kan worden geschud, bemonsterd en gestreamd.

Logbestanden & eventstreams

JSONL

Gestructureerde logsystemen (ELK-stack, Datadog, CloudWatch) genereren logs in JSONL-formaat. Elke logvermelding is één JSON-regel, waardoor het eenvoudig is om nieuwe vermeldingen toe te voegen en logs in realtime te verwerken.

Big Data-verwerking

JSONL

Tools zoals Apache Spark, BigQuery en AWS Athena ondersteunen JSONL van nature. Het regel-voor-regel formaat maakt parallelle verwerking over gedistribueerde systemen mogelijk — elke worker kan onafhankelijk een blok regels verwerken.

Streaming API's

JSONL

API's die grote resultaatsets retourneren, gebruiken vaak JSONL-streaming. De client kan direct beginnen met het verwerken van resultaten zodra ze binnenkomen, zonder te wachten op het volledige antwoord.

JSONL-bestandsextensies

JSONL-bestanden gebruiken gewoonlijk deze extensies:

.jsonlDe standaard JSONL-extensie, meest gebruikt
.ndjsonNewline Delimited JSON — technisch hetzelfde formaat met een andere naam
.jsonSommige tools genereren JSONL met een .json-extensie, wat verwarrend kan zijn

Alle drie de extensies bevatten hetzelfde formaat — één JSON-waarde per regel. Het MIME-type voor JSONL is application/jsonl of application/x-ndjson.

Probeer onze gratis JSONL-tools

Valideer je JSONL-syntaxis, converteer tussen formaten en bekijk bestanden — allemaal in je browser.

Probeer onze JSONL Viewer

Open, bekijk en bewerk JSONL-bestanden tot 1GB — direct in je browser. Geen uploads, 100% privé.

Veelgestelde vragen

Wat is JSONL? Gids over het JSON Lines-formaat, voorbeeld...