Was ist JSONL? Vollständige Anleitung zum JSON Lines Format
Alles, was Sie über JSON Lines wissen müssen — Syntax, Beispiele, Anwendungsfälle und Best Practices.
Letzte Aktualisierung: Februar 2026
Was ist JSONL?
JSONL (JSON Lines), auch bekannt als Newline Delimited JSON (NDJSON), ist ein textbasiertes Datenformat, bei dem jede Zeile ein gültiger JSON-Wert ist, getrennt durch Zeilenumbruchzeichen. Im Gegensatz zu Standard-JSON, das Daten in einem einzelnen Array oder Objekt umhüllt, speichert JSONL einen Datensatz pro Zeile.
Dieses einfache Design macht JSONL ideal für Streaming, Protokollierung und die Verarbeitung großer Datensätze — jede Zeile kann unabhängig gelesen, geparst und verarbeitet werden, ohne die gesamte Datei in den Speicher laden zu müssen.
Das Format wurde durch Tools und Plattformen populär, die massive Datenmengen verarbeiten, darunter OpenAI (für Fine-Tuning-Datensätze), BigQuery, Apache Spark und Protokollverwaltungssysteme.
JSONL-Syntaxregeln
Das JSONL-Format folgt einigen einfachen Regeln:
- Jede Zeile muss ein gültiger JSON-Wert sein (Objekt, Array, String, Zahl, Boolean oder null)
- Zeilen werden durch Zeilenumbruchzeichen (\n) getrennt
- Keine Kommas oder Trennzeichen zwischen den Zeilen
- Dateien müssen UTF-8-Codierung verwenden
- Ein abschließender Zeilenumbruch am Dateiende ist optional
- Leere Zeilen werden von den meisten Parsern ignoriert
{"name":"Alice","age":30,"city":"New York"}{"name":"Bob","age":25,"city":"London"}{"name":"Charlie","age":35,"city":"Tokyo"}
Hinweis: Jede Zeile ist ein vollständiges, eigenständiges JSON-Objekt. Es gibt keine Kommas zwischen den Zeilen und kein umschließendes Array.
JSONL-Beispiele
{"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-Zeilen müssen nicht alle den gleichen Typ haben — jede Zeile muss nur gültiges JSON sein:
{"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"}
Eine der beliebtesten Verwendungen von JSONL ist für OpenAI Fine-Tuning-Datensätze:
{"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."}]}
Wie man JSONL-Dateien liest
JSONL-Dateien können mit jedem Tool gelesen werden, das zeilenweise Textverarbeitung unterstützt. Hier sind die gängigsten Methoden:
Verwenden Sie Standard-Unix-Tools zum Inspizieren von JSONL-Dateien:
# 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)'
Pythons eingebautes json-Modul verarbeitet JSONL auf natürliche Weise:
import jsonwith open('data.jsonl', 'r') as f:for line in f:record = json.loads(line)print(record['name'])
JSONL-Dateien zeilenweise in Node.js lesen:
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);}
Wie man JSONL-Dateien erstellt
JSONL-Dateien zu erstellen ist unkompliziert — schreiben Sie einfach einen JSON-Wert pro Zeile.
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');
Kann man Kommentare in JSONL hinzufügen?
Nein. Die JSONL-Spezifikation unterstützt keine Kommentare. Jede Zeile in einer JSONL-Datei muss ein gültiger JSON-Wert sein — und JSON selbst hat keine Kommentarsyntax.
Wenn Sie Metadaten oder Anmerkungen zusammen mit Ihren Daten einschließen müssen, gibt es gängige Umgehungen:
- 1Fügen Sie ein Metadatenfeld zu Ihren JSON-Objekten hinzu: '{'"_comment": "test data", "name": "Alice"'}'
- 2Verwenden Sie eine separate Metadatendatei neben Ihrer JSONL-Datei
- 3Fügen Sie Metadaten als erste Zeile der Datei hinzu: '{'"_meta": '{'"version": "1.0", "created": "2026-01-15"'}''}'
Beachten Sie, dass alle "Kommentar"-Felder als reguläre Daten geparst werden. Anwendungen, die die JSONL-Datei verarbeiten, sollten so gestaltet sein, dass sie Metadatenfelder ignorieren.
JSONL vs JSON
Der wesentliche Unterschied liegt in der Struktur. JSON umhüllt alles in einem einzelnen Wert, während JSONL einen Wert pro Zeile speichert.
[{"name": "Alice", "age": 30},{"name": "Bob", "age": 25}]
{"name":"Alice","age":30}{"name":"Bob","age":25}
- JSON muss vollständig in den Speicher geladen werden, um geparst zu werden; JSONL kann zeilenweise gelesen werden
- JSON benötigt Kommas zwischen Elementen; JSONL verwendet Zeilenumbrüche
- JSON ist besser für Konfigurationsdateien und APIs; JSONL ist besser für große Datensätze und Streaming
- Daten an JSON anzuhängen erfordert das Neuschreiben der gesamten Datei; JSONL hängt einfach eine neue Zeile an
Für einen detaillierten Vergleich siehe unseren vollständigen JSON vs JSONL guide.
Häufige Anwendungsfälle
Machine Learning & KI
Am beliebtestenJSONL ist das Standardformat für ML-Trainingsdaten. OpenAI, Hugging Face und andere KI-Plattformen verwenden JSONL für Fine-Tuning-Datensätze, weil jedes Trainingsbeispiel eine eigenständige Zeile ist, die effizient gemischt, gesampelt und gestreamt werden kann.
Protokolldateien & Event-Streams
JSONLStrukturierte Protokollierungssysteme (ELK Stack, Datadog, CloudWatch) geben Protokolle im JSONL-Format aus. Jeder Protokolleintrag ist eine JSON-Zeile, was das Anhängen neuer Einträge und die Echtzeitverarbeitung von Protokollen erleichtert.
Big Data Verarbeitung
JSONLTools wie Apache Spark, BigQuery und AWS Athena unterstützen JSONL nativ. Das zeilenweise Format ermöglicht parallele Verarbeitung über verteilte Systeme — jeder Worker kann einen Teil der Zeilen unabhängig verarbeiten.
Streaming-APIs
JSONLAPIs, die große Ergebnismengen zurückgeben, verwenden oft JSONL-Streaming. Der Client kann sofort mit der Verarbeitung der Ergebnisse beginnen, sobald sie eintreffen, ohne auf die vollständige Antwort warten zu müssen.
JSONL-Dateierweiterungen
JSONL-Dateien verwenden häufig diese Erweiterungen:
Alle drei Erweiterungen enthalten dasselbe Format — ein JSON-Wert pro Zeile. Der MIME-Typ für JSONL ist application/jsonl oder application/x-ndjson.
Kostenlose JSONL-Tools ausprobieren
Validieren Sie Ihre JSONL-Syntax, konvertieren Sie zwischen Formaten und zeigen Sie Dateien an — alles in Ihrem Browser.