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
{"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
{"id":1,"name":"Alice","email":"alice@example.com"}{"id":2,"name":"Bob","email":"bob@example.com"}{"id":3,"name":"Charlie","email":"charlie@example.com"}
{"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:
{"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:
{"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:
# View first 5 lineshead -n 5 data.jsonl# Count total lines (records)wc -l data.jsonl# Pretty-print each line with jqcat data.jsonl | jq .# Filter by field valuecat data.jsonl | jq 'select(.age > 30)'
De ingebouwde json-module van Python verwerkt JSONL op natuurlijke wijze:
import jsonwith 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:
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);}
Hoe JSONL-bestanden maken
JSONL-bestanden maken is eenvoudig — schrijf gewoon één JSON-waarde per regel.
import jsonrecords = [{"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')
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.
[{"name": "Alice", "age": 30},{"name": "Bob", "age": 25}]
{"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 populairJSONL 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
JSONLGestructureerde 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
JSONLTools 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
JSONLAPI'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:
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.