JSONL Tutorial: JSONL-bestanden maken, lezen & converteren

Een stapsgewijze tutorial die alles behandelt wat je moet weten over werken met JSONL (JSON Lines) bestanden. Inclusief codevoorbeelden in Python, JavaScript en CLI-tools.

Laatst bijgewerkt: februari 2026

Wat is JSONL?

JSONL (JSON Lines) is een lichtgewicht tekstformaat waarbij elke regel een afzonderlijke, geldige JSON-waarde is. In tegenstelling tot standaard JSON, dat alle gegevens in één array of object verpakt, slaat JSONL één record per regel op, gescheiden door nieuwe regeltekens (\n).

Deze regel-voor-regel-structuur maakt JSONL ideaal voor het streamen van grote datasets, het toevoegen van records zonder het bestand te herschrijven en het parallel verwerken van gegevens. Het wordt veel gebruikt door OpenAI voor fine-tuning-datasets, door logsystemen zoals de ELK-stack en door big data-tools zoals BigQuery en Apache Spark.

example.jsonl
{"id":1,"name":"Alice","role":"engineer"}
{"id":2,"name":"Bob","role":"designer"}
{"id":3,"name":"Charlie","role":"manager"}

Hoe JSONL-bestanden maken

Een JSONL-bestand maken is eenvoudig: serialiseer elk record als een enkele-regel JSON-string en schrijf het gevolgd door een nieuwe regel. Hier zijn voorbeelden in de populairste talen.

Python
import json
records = [
{"id": 1, "name": "Alice", "role": "engineer"},
{"id": 2, "name": "Bob", "role": "designer"},
{"id": 3, "name": "Charlie", "role": "manager"},
]
with open("output.jsonl", "w", encoding="utf-8") as f:
for record in records:
f.write(json.dumps(record, ensure_ascii=False) + "\n")
print("Created output.jsonl with", len(records), "records")
JavaScript / Node.js
import { writeFileSync } from 'fs';
const records = [
{ id: 1, name: 'Alice', role: 'engineer' },
{ id: 2, name: 'Bob', role: 'designer' },
{ id: 3, name: 'Charlie', role: 'manager' },
];
const jsonl = records
.map(record => JSON.stringify(record))
.join('\n');
writeFileSync('output.jsonl', jsonl + '\n', 'utf-8');
console.log(`Created output.jsonl with ${records.length} records`);

Handmatig / Teksteditor

Je kunt ook JSONL-bestanden maken in elke teksteditor. Typ gewoon één geldig JSON-object per regel zonder komma's tussen regels, en sla het bestand op met een .jsonl-extensie. Zorg ervoor dat elke regel compleet en geldige JSON is.

Hoe JSONL-bestanden lezen

Omdat elke regel een onafhankelijke JSON-waarde is, is het lezen van JSONL-bestanden zo eenvoudig als itereren over regels. Hier zijn de meest voorkomende benaderingen.

Python
import json
with open("data.jsonl", "r", encoding="utf-8") as f:
for line_number, line in enumerate(f, 1):
line = line.strip()
if not line:
continue # skip empty lines
record = json.loads(line)
print(f"Line {line_number}: {record['name']} - {record['role']}")
JavaScript / Node.js
import { createReadStream } from 'fs';
import { createInterface } from 'readline';
const rl = createInterface({
input: createReadStream('data.jsonl', 'utf-8'),
});
let lineNumber = 0;
for await (const line of rl) {
if (!line.trim()) continue; // skip empty lines
lineNumber++;
const record = JSON.parse(line);
console.log(`Line ${lineNumber}: ${record.name} - ${record.role}`);
}
Command Line (grep / jq)
# Eerste 10 regels bekijken
head -n 10 data.jsonl
# Totaal aantal records tellen
wc -l data.jsonl
# Elke regel mooi afdrukken met jq
cat data.jsonl | jq .
# Records filteren waar role "engineer" is
cat data.jsonl | jq 'select(.role == "engineer")'
# Alleen het naamveld extraheren
cat data.jsonl | jq -r '.name'
# Zoeken naar regels die een trefwoord bevatten
grep '"Alice"' data.jsonl

Hoe JSON naar JSONL converteren

Als je een standaard JSON-array hebt, betekent converteren naar JSONL dat je elk element als een aparte regel schrijft. Dit is een van de meest voorkomende JSONL-bewerkingen.

Python
import json
# JSON-array lezen
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f) # expects a JSON array
# Als JSONL schrijven
with open("data.jsonl", "w", encoding="utf-8") as f:
for record in data:
f.write(json.dumps(record, ensure_ascii=False) + "\n")
print(f"Converted {len(data)} records from JSON to JSONL")
JavaScript / Node.js
import { readFileSync, writeFileSync } from 'fs';
// JSON-array lezen
const data = JSON.parse(readFileSync('data.json', 'utf-8'));
// Als JSONL schrijven
const jsonl = data
.map(record => JSON.stringify(record))
.join('\n');
writeFileSync('data.jsonl', jsonl + '\n', 'utf-8');
console.log(`Converted ${data.length} records from JSON to JSONL`);

Online converteren

Geen zin om code te schrijven? Gebruik onze gratis online JSON to JSONL converter — plak of upload je bestand en converteer direct.

Hoe CSV naar JSONL converteren

CSV naar JSONL converteren zet elke rij om in een JSON-object, waarbij de CSV-header als veldnamen wordt gebruikt. Dit is handig bij het migreren van tabelgegevens naar een formaat geschikt voor streaming of machine learning.

Python
import csv
import json
with open("data.csv", "r", encoding="utf-8") as csv_file:
reader = csv.DictReader(csv_file)
with open("data.jsonl", "w", encoding="utf-8") as jsonl_file:
for row in reader:
jsonl_file.write(json.dumps(row, ensure_ascii=False) + "\n")
print("Converted CSV to JSONL successfully")
JavaScript / Node.js
import { readFileSync, writeFileSync } from 'fs';
const csv = readFileSync('data.csv', 'utf-8');
const lines = csv.trim().split('\n');
const headers = lines[0].split(',');
const jsonl = lines.slice(1).map(line => {
const values = line.split(',');
const obj = {'};
headers.forEach((h, i) => obj[h.trim()] = values[i]?.trim());
return JSON.stringify(obj);
}).join('\n');
writeFileSync('data.jsonl', jsonl + '\n', 'utf-8');
console.log('Converted CSV to JSONL successfully');

CSV online converteren

Converteer CSV-bestanden direct naar JSONL-formaat met onze gratis online tool — geen code nodig.

JSONL best practices

1

Gebruik UTF-8-codering voor alle JSONL-bestanden. Dit zorgt voor compatibiliteit tussen platforms en ondersteunt internationale tekens.

2

Schrijf precies één JSON-object per regel. Splits nooit een JSON-object over meerdere regels of plaats meerdere objecten op dezelfde regel.

3

Voeg geen komma's toe tussen regels. In tegenstelling tot JSON-arrays gebruikt JSONL nieuwe regeltekens als enige scheidingsteken.

4

Valideer elke regel onafhankelijk. Elke regel moet een complete, geldige JSON-waarde zijn. Gebruik een JSONL-validator om syntaxfouten vroeg op te sporen.

5

Gebruik streaming reads voor grote bestanden. In plaats van het hele bestand in het geheugen te laden, verwerk het regel voor regel met readline (Node.js) of bestandsiteratie (Python).

6

Houd records consistent in structuur. Hoewel JSONL verschillende schema's per regel toestaat, maakt het behouden van een uniforme structuur gegevensverwerking veel eenvoudiger.

7

Vermijd extra witruimte. Zorg ervoor dat regels geen extra spaties of tabs hebben die parseerfouten kunnen veroorzaken.

8

Eindig het bestand met een nieuwe regel. Een afsluitende nieuwe regel na het laatste record helpt tools zoals wc en cat het bestand correct te verwerken.

Veelvoorkomende JSONL-fouten

Verpakken in een array
Wrong
[
  {"name":"Alice"},
  {"name":"Bob"}
]
Correct
{"name":"Alice"}
{"name":"Bob"}

JSONL is geen JSON-array. Verpak regels niet in vierkante haken of voeg komma's toe tussen ze. Elke regel staat op zichzelf.

Komma's tussen regels
Wrong
{"name":"Alice"},
{"name":"Bob"},
Correct
{"name":"Alice"}
{"name":"Bob"}

Afsluitende komma's na elke regel of komma's tussen regels zijn ongeldig in JSONL. Het nieuwe regelteken is het enige scheidingsteken.

Meerdere regels JSON-objecten
Wrong
{
  "name": "Alice",
  "age": 30
}
Correct
{"name":"Alice","age":30}

Elk JSON-object moet op één regel passen. Mooi opgemaakte JSON met inspringingen en regeleinden is geen geldige JSONL.

Niet-geëscapete speciale tekens
Wrong
{"text":"She said "hello""}
Correct
{"text":"She said \"hello\""}

Aanhalingstekens en speciale tekens in JSON-strings moeten correct worden geëscaped met backslashes. Niet-geëscapete aanhalingstekens breken de JSON-parser.

Je JSONL valideren

Valideer je JSONL-bestand na het aanmaken om syntaxfouten vroeg op te sporen. Onze gratis validator controleert elke regel direct.

Probeer onze gratis JSONL-tools

Bekijk, valideer en converteer JSONL-bestanden tot 1GB direct in je browser. Geen uploads vereist, 100% privé.

Veelgestelde vragen

JSONL Tutorial — Maak, lees, valideer & converteer JSONL-...