JSONL vs NDJSON: Was ist der Unterschied?

Ein vollständiger Leitfaden zum Vergleich von JSONL (JSON Lines) und NDJSON (Newline Delimited JSON) — zwei Namen für nahezu dasselbe Format mit subtilen Unterschieden, die es wert sind, gekannt zu werden.

Zuletzt aktualisiert: Februar 2026

Schnellvergleich: JSONL vs NDJSON

MerkmalJSONL (JSON Lines)NDJSON
Vollständiger NameJSON LinesNewline Delimited JSON
Dateierweiterung.jsonl.ndjson
Spezifikationjsonlines.org (informell)github.com/ndjson/ndjson-spec (informelle Spezifikation)
HerkunftCommunity-Konvention, popularisiert durch Data-Science-ToolsVorgeschlagen von Chris Olah, Thorsten Ball und anderen
Zeilentrennzeichen\n (Zeilenumbruch)\n (Zeilenumbruch)
MIME-Typapplication/jsonl (inoffiziell)application/x-ndjson
Streaming-UnterstützungJa, zeilenweiseJa, zeilenweise
VerbreitungOpenAI, Hugging Face, ML/AI-ÖkosystemElasticsearch, Apache Spark, Data Engineering

Was ist JSONL (JSON Lines)?

JSONL, kurz für JSON Lines, ist ein textbasiertes Datenformat, bei dem jede Zeile einen einzelnen gültigen JSON-Wert enthält. Zeilen werden durch Zeilenumbruchzeichen (\n) getrennt. Das Format wurde von den Machine-Learning- und Data-Science-Communities popularisiert und ist informell bei jsonlines.org definiert.

JSONL-Dateien verwenden die Dateierweiterung .jsonl. Das Format ist zum Standard für AI- und ML-Trainingsdaten geworden — OpenAI benötigt .jsonl-Dateien für Fine-Tuning, und Hugging-Face-Datensätze verwenden häufig das JSON-Lines-Format.

data.jsonl
{"id": 1, "text": "Hello world", "label": "greeting"}
{"id": 2, "text": "How are you?", "label": "question"}
{"id": 3, "text": "Goodbye", "label": "farewell"}

Was ist NDJSON (Newline Delimited JSON)?

NDJSON, oder Newline Delimited JSON, ist ein Datenformat, bei dem jede Zeile ein gültiger JSON-Wert ist, getrennt durch Zeilenumbruchzeichen. Die Spezifikation ist bei github.com/ndjson/ndjson-spec gehostet und wurde formalisiert, um einen strukturierteren Standard für zeilenbasierte JSON-Daten bereitzustellen.

NDJSON-Dateien verwenden die Dateierweiterung .ndjson und haben einen registrierten MIME-Typ application/x-ndjson. Das Format ist weit verbreitet im Data Engineering, bei der Protokollverarbeitung und in Streaming-Anwendungen — Elasticsearch, Apache Spark und viele HTTP-Streaming-APIs verwenden NDJSON.

data.ndjson
{"id": 1, "text": "Hello world", "label": "greeting"}
{"id": 2, "text": "How are you?", "label": "question"}
{"id": 3, "text": "Goodbye", "label": "farewell"}

Sind JSONL und NDJSON dasselbe Format?

In der Praxis ja — JSONL und NDJSON sind funktional identische Formate. Beide speichern einen JSON-Wert pro Zeile, getrennt durch Zeilenumbruchzeichen (\n). Eine .jsonl-Datei und eine .ndjson-Datei mit denselben Daten sind vollständig austauschbar, und jedes Tool, das ein Format lesen kann, kann auch das andere lesen.

Die Unterschiede liegen rein in der Namensgebung, der Community-Akzeptanz und den Metadaten-Konventionen. JSONL (JSON Lines) kam aus der Data-Science- und Machine-Learning-Community, während NDJSON (Newline Delimited JSON) von der Data-Engineering- und Web-Streaming-Community formalisiert wurde. Denken Sie daran wie an "movie" vs "film" — dasselbe, unterschiedliche Namenspräferenzen in verschiedenen Kreisen.

Der bedeutendste Unterschied ist die Dateierweiterung (.jsonl vs .ndjson) und der MIME-Typ. NDJSON hat einen weiter verbreiteten MIME-Typ (application/x-ndjson), der in HTTP-Streaming-Kontexten verwendet wird, während JSONL-Dateien der Standard in AI/ML-Workflows sind. Folgen Sie bei der Wahl zwischen ihnen der Konvention Ihres Ökosystems.

Hauptunterschiede zwischen JSONL und NDJSON

1. Spezifikation & Autorität

JSONL

Definiert bei jsonlines.org mit einer prägnanten, informellen Spezifikation. Die Spezifikation ist einfach: Jede Zeile ist ein gültiger JSON-Wert, Zeilen werden durch '\n' getrennt, und UTF-8-Kodierung wird empfohlen.

NDJSON

Definiert bei github.com/ndjson/ndjson-spec mit einer etwas formelleren Spezifikation. NDJSON verlangt ausdrücklich, dass jede Zeile ein gültiger JSON-Wert ist und dass das Zeilentrennzeichen '\n' (nicht '\r\n') ist, mit einem empfohlenen abschließenden Zeilenumbruch.

2. Dateierweiterung

JSONL

Verwendet die Dateierweiterung .jsonl. Dies ist der Standard für OpenAI-Fine-Tuning-Dateien, Hugging-Face-Datensätze und die meisten ML/AI-Tools. GitHub und VS Code erkennen .jsonl-Dateien mit Syntaxhervorhebung.

NDJSON

Verwendet die Dateierweiterung .ndjson. Dies ist üblich bei Data-Engineering-Tools, Elasticsearch-Bulk-APIs und Streaming-HTTP-Antworten. Viele Editoren unterstützen auch .ndjson-Syntaxhervorhebung.

3. MIME-Typ

JSONL

Kein offiziell registrierter MIME-Typ. Gängige inoffizielle Typen sind application/jsonl und application/json-lines. In der Praxis verwenden viele Systeme application/jsonl oder fallen auf application/json zurück.

NDJSON

Verwendet application/x-ndjson als MIME-Typ. Dieser ist in HTTP-Kontexten weiter anerkannt und wird von Elasticsearch, dem Fetch-API-Streaming-Standard und verschiedenen Web-Frameworks für Streaming-Antworten verwendet.

4. Community- & Ökosystem-Akzeptanz

JSONL

Dominant im AI/ML-Ökosystem. OpenAI, Anthropic, Google Gemini, Hugging Face und die meisten ML-Frameworks verwenden .jsonl. Der Begriff 'JSONL' wird in der Entwickler-Community insgesamt häufiger gesucht und erkannt.

NDJSON

Bevorzugt im Data Engineering und Backend-Systemen. Elasticsearch, Apache Spark, PostgreSQL COPY und viele Log-Aggregations-Tools verwenden NDJSON. Das ndjson-npm-Paket hat Millionen wöchentliche Downloads.

Wann JSONL vs NDJSON verwenden

JSONLVerwenden Sie .jsonl wenn:
  • Sie Trainingsdaten für OpenAI, Anthropic oder andere LLM-Fine-Tuning vorbereiten
  • Sie mit Hugging-Face-Datensätzen arbeiten
  • Sie ML-Pipelines und Datenvorverarbeitung aufbauen
  • Ihr Team oder Ihre Dokumentation auf 'JSON Lines' verweist
  • Sie Dateien auf AI/ML-Plattformen hochladen, die die .jsonl-Erweiterung erwarten
  • Sie in Python-Data-Science-Umgebungen arbeiten
NDJSONVerwenden Sie .ndjson wenn:
  • Sie JSON-Daten über HTTP streamen (Server-Sent Events, Fetch-Streaming)
  • Sie mit der Elasticsearch-Bulk-API arbeiten
  • Sie Datenpipelines mit Apache Spark oder ähnlichen Tools aufbauen
  • Sie Content-Type-Header setzen (application/x-ndjson)
  • Ihre Infrastruktur oder Ihr Team die NDJSON-Konvention verwendet
  • Sie mit Node.js-Streaming-Bibliotheken arbeiten

Code-Beispiele: JSONL und NDJSON lesen

Eine .jsonl-Datei lesen (Python)
# JSONL lesen - genau das gleiche wie NDJSON lesen
import json
with open('data.jsonl', 'r') as f:
for line in f:
record = json.loads(line.strip())
print(record['text'])
# Ausgabe:
# Hello world
# How are you?
# Goodbye
Eine .ndjson-Datei lesen (JavaScript/Node.js)
// NDJSON lesen - genau das gleiche wie JSONL lesen
import { createReadStream } from 'fs';
import { createInterface } from 'readline';
const rl = createInterface({
input: createReadStream('data.ndjson')
});
for await (const line of rl) {
const record = JSON.parse(line);
console.log(record.text);
}
// Ausgabe:
// Hello world
// How are you?
// Goodbye

JSONL / NDJSON Dateien validieren

Prüfen Sie, ob Ihre .jsonl- oder .ndjson-Datei korrekt formatiert ist. Unser kostenloser Validator prüft jede Zeile auf gültige JSON-Syntax.

JSONL- & NDJSON-Dateien sofort anzeigen

.jsonl- und .ndjson-Dateien bis zu 1 GB in Ihrem Browser öffnen. Keine Uploads, keine Anmeldung — funktioniert nahtlos mit beiden Formaten.

Häufig gestellte Fragen

JSONL vs NDJSON — Sind sie identisch? Die wichtigsten Unt...