100 % lokal — Ihre Daten verlassen nie Ihren Browser

NDJSON in JSON — ein Array für jq

Zeilengetrenntes JSON in ein einziges Array verwandeln. Leerzeilen werden übersprungen, und eine kaputte Zeile wird mit ihrer Nummer benannt.

Sofort Privat Null Cookies
Einrückung

NDJSON-Eingabe

JSON-Ausgabe

Was dieses Werkzeug tut

Zeilengetrenntes JSON hinein, ein Array heraus.

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

Das ist das ganze Format: ein JSON-Wert je Zeile, keine Kommas dazwischen, keine Klammern darum. Genau das schreiben Log-Pipelines, das erwarten bq load und viele Stream-APIs, und das erzeugt jq -c.

Eine fehlerhafte Zeile wird benannt

{"a": 1}

{oops}
Invalid JSON on line 3

Die Leerzeile wird kommentarlos übersprungen — eine NDJSON-Datei endet oft mit einer. Die fehlerhafte Zeile hält die Umwandlung an, und die Meldung trägt ihre Nummer, Sie gehen also direkt hin. Ein Teil-Array bekommen Sie nicht: die Hälfte der Datensätze, ohne dass irgendetwas es sagt, ist schlimmer als ein Fehler.

Lange Zahlen behalten ihre Ziffern

{"id": 12345678901234567890}
[
  {
    "id": 12345678901234567890
  }
]

Ab etwa sechzehn Stellen ist eine JavaScript-Zahl nicht mehr exakt: lesen Sie diese Kennung als Zahl, bekommen Sie still eine andere zurück. Lesen und Schreiben behalten hier das Literal so, wie es dastand — deshalb übersteht eine Datei voller Twitter- oder Discord-Kennungen die Reise.

Was es nicht tut

  • Umsortieren oder entdoppeln. Das Array hält die Zeilen in der Reihenfolge, in der sie kamen, Wiederholungen eingeschlossen.
  • Objekte verlangen. Eine Zeile darf jeder JSON-Wert sein: 1, "x" und null sind gültige Datensätze und kommen als solche durch.
  • Eine Zeile teilen. Zwei Werte auf einer Zeile sind ein Fehler, nicht zwei Datensätze.

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

Was passiert, wenn eine Zeile fehlerhaft ist?
Die Umwandlung hält an und sagt Ihnen, welche: `Invalid JSON on line 3`. Es kommt nichts Halbes zurück — ein halbes Array sähe wie ein Ergebnis aus, und Sie trügen die fehlenden Datensätze weiter. Zeile berichtigen, noch einmal umwandeln.
Überstehen lange numerische Kennungen die Reise?
Ja, Ziffer für Ziffer. Eine 19-stellige Kennung geht über das hinaus, was eine JavaScript-Zahl exakt fasst, und ein Umwandler, der sie als Zahl läse, gäbe Ihnen den Nachbarwert zurück, ohne ein Wort. Hier behalten Lesen und Schreiben das Literal, also kommt `12345678901234567890` als es selbst heraus.
Was zählt genau als Zeile?
Ein ganzer JSON-Wert. Leerzeilen werden übersprungen, `\r\n` stört nicht, und eine Bytereihenfolge-Marke am Anfang auch nicht. Zwei Objekte auf derselben Zeile sind dagegen nicht zwei Datensätze: diese Zeile wird als ungültig gemeldet, denn NDJSON setzt einen Wert pro Zeile, und zu raten, wo zu trennen ist, hieße Daten zu erfinden.

Ähnliche Konverter