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"undnullsind 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.