araç köşesi

JSON in JSONL umwandeln (JSON Lines)

Jeden Datensatz eines JSON-Arrays in eine eigene Zeile schreiben oder JSONL-Zeilen zu einem JSON-Array zusammenfassen

Ihre Daten bleiben bei Ihnen. Die Umwandlung läuft im Browser; nichts wird an einen Server gesendet.

So funktioniert es

JSONL (JSON Lines) ist ein Textformat mit genau einem vollständigen JSON-Datensatz pro Zeile; Trainingsdaten für KI-Feinabstimmung, Massenimporte in BigQuery und Elasticsearch sowie Logdateien verlangen es. Liegen Ihre Daten als JSON-Array in [ ... ] vor, fügen Sie sie in das linke Feld ein; bei der Richtung „JSON-Array → JSONL“ wird jeder Datensatz in eine einzige Zeile geschrieben. Die drei Frage-Antwort-Datensätze im Beispiel werden zu einer dreizeiligen JSONL-Datei, die wie üblich mit einem Zeilenumbruch endet. Die Datensätze werden nicht neu erzeugt, sondern aus dem Quelltext geschnitten; entfernt werden nur überflüssige Leerzeichen. Große IDs wie 9007199254740993, die JavaScript runden würde, und Schreibweisen wie 1.0 bleiben so erhalten. Für den umgekehrten Weg fügen Sie JSONL-Zeilen ein und stellen die Richtung auf „JSONL → JSON-Array“: Jede Zeile wird einzeln gelesen und alle landen in einem JSON-Array; Leerzeilen werden übersprungen, eine fehlerhafte Zeile wird mit Nummer gemeldet (z. B. „Zeile 3 ist kein gültiges JSON“).

Dieses Werkzeug ist auch als json in jsonl umwandeln, jsonl in json umwandeln, json lines konvertieren, json to jsonl bekannt.

Was ist JSONL (JSON Lines)?

JSONL ist ein Klartextformat, in dem jede Zeile für sich ein gültiger JSON-Wert ist; Zeilen werden durch \n getrennt, die Datei ist UTF-8-kodiert. Da die Datei als Ganzes kein einzelnes JSON-Dokument ist, kann ein Programm einen Datensatz verarbeiten, bevor es den nächsten liest, und neue Datensätze lassen sich anhängen, ohne die Datei neu zu schreiben. Das macht JSONL zum Standard für Logs, Datenströme und KI-Trainingsdaten.

Was ist JSON-Array?

Ein JSON-Array ist eine Liste von Werten in eckigen Klammern, getrennt durch Kommas: [{"id": 1}, {"id": 2}]. So antworten die meisten APIs, und so übergeben Sie Daten auf einmal an eine Tabelle oder ein Programm. Gültig ist es erst, wenn die schließende Klammer gelesen wurde; sehr große Arrays werden daher vollständig in den Speicher geladen. JSONL umgeht diese Grenze, indem es jeden Datensatz in eine eigene Zeile legt.

Was ist der Unterschied zwischen JSON und JSONL?

JSON ist ein einzelner Wert: Alle Datensätze stehen in einem Array, und die Datei ist erst nach der letzten Klammer gültig. JSONL hält die Datensätze als getrennte JSON-Werte untereinander; jede Zeile ist für sich lesbar, Anhängen ist trivial und Millionen Zeilen lassen sich stückweise verarbeiten. JSON eignet sich zum Lesen durch Menschen und für API-Antworten, JSONL für Massenimporte, Logs und Trainingsdaten. Beide lassen sich verlustfrei ineinander umwandeln.

Fallstrick: Ein Datensatz darf nicht über mehrere Zeilen gehen

In JSONL trennt der Zeilenumbruch die Datensätze. Ein Datensatz darf deshalb keinen echten Zeilenumbruch enthalten; ein Umbruch in einem Textfeld wird als Escape \n geschrieben. Hübsch eingerücktes JSON als JSONL zu speichern ist der häufigste Fehler: Der Leser sieht in der ersten Zeile nur { und bricht ab. In Richtung JSON → JSONL entfernt dieses Werkzeug Leerzeichen und Umbrüche innerhalb eines Datensatzes, lässt Strings aber unangetastet; in der Gegenrichtung zeigt es einen zerteilten Datensatz mit Zeilennummer.

JSON.parse und JSON.stringify in JavaScript runden Ganzzahlen über 2^53 (aus 9007199254740993 wird 9007199254740992) und schreiben 1.0 als 1. Bei Datenbank-IDs ist das ein stiller Datenverlust. Weil dieses Werkzeug die Datensätze aus dem Quelltext schneidet, ändern sich Zahlen, Schlüsselreihenfolge und Unicode-Escapes nicht.

Welche Richtung wann

JSON-Array → JSONL: wenn Sie eine Feinabstimmungsdatei für OpenAI oder ein ähnliches Modell vorbereiten, NEWLINE_DELIMITED_JSON in BigQuery laden, eine _bulk-Anfrage an Elasticsearch schicken oder ein Log erzeugen, das zeilenweise verarbeitet wird. JSONL lässt sich Zeile für Zeile lesen, ohne die ganze Datei in den Speicher zu laden – deshalb nutzen große Datenmengen dieses Format.

JSONL → JSON-Array: wenn Sie einen API-Export oder ein Log als ein einziges JSON-Dokument öffnen oder an eine Tabelle bzw. einen JSON-zu-CSV-Konverter übergeben wollen. Ist die Wurzel ein Objekt (etwa {"daten": [...]}), entsteht einzeiliges JSONL; fügen Sie dann das innere Array ein, um die Datensätze zu trennen.

Häufige Fragen

Wie wandle ich eine JSON-Datei in JSONL um?

Fügen Sie das JSON-Array in das linke Feld dieser Seite ein und lassen Sie die Richtung auf „JSON-Array → JSONL“. Jeder Datensatz wird rechts zu einer Zeile. Laden Sie das Ergebnis mit der Endung .jsonl herunter und verwenden Sie es für Modelltraining, BigQuery oder Elasticsearch.

Sind JSONL und NDJSON dasselbe?

Praktisch ja. Beide verlangen einen JSON-Wert pro Zeile und \n als Trenner; der Name JSON Lines stammt von jsonlines.org, NDJSON (newline-delimited JSON) aus einer eigenen Spezifikation. Die Endung kann .jsonl oder .ndjson sein; die Ausgabe dieses Werkzeugs passt zu beiden.

Was bedeutet „Zeile 3 ist kein gültiges JSON“?

In JSONL muss jede Zeile für sich ein vollständiger JSON-Wert sein. Meist ist ein Datensatz auf mehrere Zeilen verteilt (eingerücktes JSON), am Zeilenende steht ein überzähliges Komma oder ein Anführungszeichen ist nicht geschlossen. Prüfen Sie die genannte Zeile und Spalte.

Werden meine Daten an einen Server geschickt?

Nein. Die Umwandlung läuft vollständig in Ihrem Browser; Kundendaten oder Trainingsdaten verlassen diese Seite nicht. Nach dem Laden funktioniert die Seite auch offline.