100 % lokal — Ihre Daten verlassen nie Ihren Browser

JSON in NDJSON — ein Datensatz pro Zeile

Ein JSON-Array in zeilengetrenntes JSON umwandeln. Ein Dokument je Zeile, minimiert — bereit für bq load, eine Log-Pipeline oder eine Stream-API.

Sofort Privat Null Cookies

JSON-Eingabe

NDJSON-Ausgabe

Was dieses Werkzeug tut

Aus einem JSON-Array wird ein JSON-Dokument je Zeile.

[
  { "id": 1, "name": "Ada" },
  { "id": 2, "name": "Grace" }
]
{"id":1,"name":"Ada"}
{"id":2,"name":"Grace"}

Jede Zeile ist minimiert, und das ist keine Stilfrage: ein eingerücktes Dokument erstreckt sich über mehrere Zeilen, und in NDJSON bedeutet ein Zeilenumbruch nächster Datensatz. Einrückung und Format schließen einander aus.

Die Wurzel muss ein Array sein

Das Array ist die Liste der Datensätze. Ein Objekt an der Wurzel ist ein einzelnes Dokument; es in Zeilen zu zerlegen hieße zu entscheiden, dass seine Schlüssel Datensätze sind — eine Vermutung, die dieses Werkzeug nicht anstellt. Die Umwandlung hält stattdessen an.

Die Elemente selbst sind frei: null, 42 und "Text" sind gültige JSON-Dokumente und damit gültige NDJSON-Zeilen. Datensätze sind meist Objekte, verlangt wird es hier aber nicht.

Lange Ganzzahlen behalten ihre Ziffern

[{ "id": 12345678901234567890 }]

kommt mit allen zwanzig Ziffern heraus. Ein Konverter, der durch eine JavaScript-Zahl geht, schreibt stattdessen 12345678901234567000, wortlos: der Wert ändert sich, und die Datei bleibt tadellos wohlgeformt.

Dieses hier tat genau das. Der Fehler wurde beim Schreiben dieser Seite gefunden und behoben; die Kennung übersteht nun den Weg durch NDJSON und zurück.

Ein leeres Array ergibt eine leere Datei

[] erzeugt gar keine Ausgabe, und das ist die richtige Antwort: NDJSON kennt keine andere Art, „null Datensätze“ zu schreiben, als eine leere Datei. Damit sehen ein leeres Ergebnis und eine leere Eingabe gleich aus — gut zu wissen, bevor Sie schließen, es sei nichts geschehen.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Warum muss die Wurzel ein Array sein?
Weil NDJSON eine Liste von Datensätzen ist und das Array diese Liste ist. Ein Objekt an der Wurzel ist ein einzelnes Dokument, und es gibt keinen ehrlichen Weg zu entscheiden, ob es ein Datensatz oder eine aufzuteilende Sammlung ist. Es wird abgelehnt statt geraten.
Was passiert mit einem Zeilenumbruch in einer meiner Zeichenketten?
Er wird als `\n` geschrieben, wie JSON es verlangt, und bleibt damit in der Zeile. Das zählt hier mehr als anderswo: in NDJSON trennt der Zeilenumbruch die Datensätze, und ein echter mitten im Dokument zerschnitte einen Datensatz in zwei unlesbare Hälften.
Meine Datei ist ein einziges Array mit einer Million Zeilen. Ist das ein Problem?
Das ist der Fall, für den es NDJSON gibt, doch die Umwandlung liest das Array trotzdem ganz in den Speicher: die Eingabe ist ein JSON-Dokument, und ein Dokument muss vollständig sein, um geparst zu werden. Ab einer gewissen Größe ist ein Strom-Werkzeug wie `jq -c ".[]"` das richtige.

Ähnliche Konverter