JSON vs JSONL: Wat is het verschil?

Een volledige handleiding voor het begrijpen van JSON- en JSONL (JSON Lines)-formaten, hun verschillen en wanneer je welk formaat moet gebruiken.

Laatst bijgewerkt: februari 2026

Snelle vergelijking

EigenschapJSONJSONL (JSON Lines)
StructuurEnkel object of arrayEén JSON-object per regel
Bestandsextensie.json.jsonl of .ndjson
ParsingMoet hele bestand parserenKan regel voor regel parseren
StreamingMoeilijkNative ondersteuning
Grote bestandenGeheugenintensiefGeheugenefficiënt
Leesbaar voor mensenGeformatteerd met inspringingCompact, één record per regel
SchemavalidatieJSON Schema ondersteundPer-regel JSON Schema
Gegevens toevoegenMoet hele bestand herschrijvenGewoon een nieuwe regel toevoegen

Wat is JSON?

JSON (JavaScript Object Notation) is een lichtgewicht gegevensuitwisselingsformaat dat gemakkelijk leesbaar en schrijfbaar is voor mensen, en gemakkelijk parseerbaar en genereerbaar voor machines. Het is gebaseerd op een subset van JavaScript en is de de facto standaard geworden voor gegevensuitwisseling op het web.

Een JSON-bestand bevat een enkele JSON-waarde — typisch een object of een array. Het hele bestand moet als één geheel worden geparseerd om toegang te krijgen tot gegevens erin.

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

Wat is JSONL (JSON Lines)?

JSONL (JSON Lines), ook bekend als Newline Delimited JSON (NDJSON), is een tekstformaat waarbij elke regel een geldig JSON-object is. Regels worden gescheiden door newline-tekens (\n). In tegenstelling tot standaard JSON is er geen omsluitende array of object rond de gegevens.

Elke regel in een JSONL-bestand is op zichzelf staand en kan onafhankelijk worden geparseerd. Dit maakt JSONL ideaal voor streaminggegevens, logbestanden en het verwerken van grote datasets zonder alles in het geheugen te laden.

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

Belangrijkste verschillen tussen JSON en JSONL

1. Bestandsformaat & structuur

JSON

JSON verpakt alle gegevens in een enkel object of array. Het bestand moet syntactisch geldig zijn als geheel — een ontbrekende haak aan het einde maakt het hele bestand ongeldig.

JSONL

JSONL slaat één JSON-object per regel op. Elke regel is onafhankelijk — als één regel een fout heeft, kunnen de andere regels nog steeds worden geparseerd.

2. Parsing & geheugengebruik

JSON

JSON vereist het laden en parseren van het volledige bestand in één keer. Een JSON-bestand van 1GB zou ongeveer 1GB+ geheugen nodig hebben om te parseren.

JSONL

JSONL kan regel voor regel worden gelezen en geparseerd (streaming). Zelfs een JSONL-bestand van 10GB kan worden verwerkt met minimaal geheugen door één regel tegelijk te lezen.

3. Streaming & realtime gegevens

JSON

JSON is niet ontworpen voor streaming. Je kunt pas beginnen met het verwerken van gegevens als het volledige bestand of antwoord is ontvangen en geparseerd.

JSONL

JSONL is ideaal voor streaming. Elke regel kan worden verwerkt zodra deze is ontvangen, waardoor het perfect is voor realtime gegevensfeeds, logs en server-sent events.

4. Gegevens toevoegen & schrijven

JSON

Het toevoegen van gegevens aan een JSON-array vereist het lezen van het hele bestand, het parseren, het toevoegen van het nieuwe element en het herschrijven van het complete bestand.

JSONL

Toevoegen aan een JSONL-bestand is zo eenvoudig als het toevoegen van een nieuwe regel aan het einde. Het is niet nodig bestaande gegevens te lezen of te wijzigen. Dit is O(1) vs O(n) voor JSON.

5. Leesbaarheid voor mensen

JSON

JSON ondersteunt pretty-printing met inspringing, waardoor het zeer leesbaar is voor configuratiebestanden en API-responses.

JSONL

JSONL is compact van opzet — één record per regel. Het is geoptimaliseerd voor machineverwerking in plaats van menselijk lezen, hoewel individuele regels wel pretty-printed kunnen worden.

Wanneer JSON vs JSONL gebruiken

JSONGebruik JSON wanneer:
  • Je werkt met configuratiebestanden
  • Je REST API request/response bodies bouwt
  • Je kleine, gestructureerde gegevens opslaat (onder 10MB)
  • Gegevens leesbaar en bewerkbaar moeten zijn voor mensen
  • Je werkt met geneste, hiërarchische gegevensstructuren
  • Gegevensuitwisseling aan browserzijde
JSONLGebruik JSONL wanneer:
  • Je grote datasets verwerkt (100MB+)
  • Je gegevens in realtime streamt
  • Je logbestanden en eventgegevens schrijft
  • Je machine learning-modellen traint (OpenAI, Hugging Face)
  • ETL-pipelines en gegevensverwerking
  • Je regelmatig gegevens toevoegt
  • Je gegevens verwerkt met Unix-tools (grep, awk, sed)

Veelvoorkomende toepassingen

Machine Learning & AI

JSONL

JSONL is het standaardformaat voor ML-trainingsgegevens. OpenAI gebruikt JSONL voor fine-tuning datasets, en veel ML-frameworks verwachten JSONL-invoer. Elke regel vertegenwoordigt één trainingsvoorbeeld.

Applicatielogging

JSONL

Serverlogs, applicatie-events en audittrails zijn van nature geschikt voor JSONL. Elk event wordt geschreven als een enkele regel, waardoor het eenvoudig is om toe te voegen, te zoeken met grep en te verwerken met streamingtools.

Web API's & configuratie

JSON

REST API's gebruiken doorgaans JSON voor request- en response-bodies. Configuratiebestanden (.json) gebruiken JSON voor leesbare, gestructureerde instellingen met geneste objecten.

Big Data & Analytics

JSONL

Datapipelines, ETL-processen en analysetools gebruiken JSONL voor het verwerken van grote hoeveelheden gegevens. Elk record kan onafhankelijk worden verwerkt, wat parallelle verwerking en MapReduce-patronen mogelijk maakt.

Codevoorbeelden

JSON lezen 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);
});
JSONL lezen 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);
}
JSON naar JSONL converteren
// 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);
JSONL naar JSON converteren
// 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));

JSON & JSONL online converteren

Gebruik onze gratis online tools om direct te converteren tussen JSON- en JSONL-formaten — geen installatie nodig.

Probeer onze JSONL Viewer

Bekijk en bewerk JSONL-bestanden tot 1GB direct in je browser. Geen uploads, geen registratie vereist.

Veelgestelde vragen

JSON vs JSONL: Wat is het verschil? Volledige handleiding