jq-Spielwiese
jq Playground
Führt jq-1.7-Filter im Browser gegen eingefügtes JSON aus, mit Spickzettel, und liefert die passende Kommandozeile.
Führt jq-Filter gegen ein Dokument im Browser aus – ein echter Interpreter für die Grammatik von jq 1.7 statt ein paar String-Operationen, sodass Pipes, `reduce`, `def`, Destrukturierung und die Update-Operatoren sich alle so verhalten wie auf der Kommandozeile. Der entsprechende Shell-Befehl wird unter dem Filter ausgegeben.
Filter
jq '.orders[] | select(.status == "shipped") | {id, customer}' data.json
Eingabe-JSON
.json-Datei hier ablegen
Wird nur in diesem Tab gelesen. Nichts wird hochgeladen.
1 Ausgabe
Ausgaben
1
Zeit
3 ms
Typen
object
Ein hier geschriebener Interpreter für die Grammatik von jq 1.7. Er kennt Pfade (.a[0].b, .., ?), |·,·//, Arithmetik, Vergleiche, and/or/not, String-Interpolation, if, try, reduce, foreach, as (samt Destrukturierung), def, Aktualisierungen wie |=·+=, Formate wie @base64·@csv und die 180 unten aufgeführten Builtins. Die Tests sind die Beispiele aus dem jq-Handbuch selbst.
Nicht unterstützt: input·inputs (es gibt nur ein Dokument), $ENV·env (leer), label·break, --stream, verschachtelte Arrays in @sh, andere Formate als ISO 8601 in strptime, der Stream-Modus von getpath und Module (import). Reguläre Ausdrücke laufen auf der Engine des Browsers statt auf jqs Oniguruma, daher \p{L} und benannte Gruppen funktionieren, und rund um Lookbehind kann es feine Unterschiede geben.
Wenn Sie nur einen einzigen Pfad wollen, ist vielleicht der JSONPath-Tester einfacher.
So funktioniert es
Fügen Sie das Dokument ein
Ein JSON-Wert oder mehrere hintereinander – das Werkzeug liest sie als jq-Eingabestrom, und die Anzahl steht im Titel des Panels.
Schreiben Sie den Filter, oder nehmen Sie einen aus der Beispielreihe
Die Schaltflächen decken die Formen ab, die vorkommen: select, map, group_by, String-Interpolation, reduce und die Update-Operatoren. Beim Darüberfahren steht, was einer tut.
Setzen Sie die Flags, die Sie auf der Kommandozeile verwenden würden
`-c` für eine Zeile pro Ausgabe, `-S` zum Sortieren der Schlüssel, `-r` für Strings ohne Anführungszeichen, `-s`, um mehrere Eingaben in ein Array zu schlürfen. Die Befehlszeile unten aktualisiert sich mit ihnen.
Kopieren Sie den Befehl, nicht nur die Ausgabe
Die erzeugte `jq …`-Zeile ist für eine POSIX-Shell korrekt gequotet, sodass sie direkt in ein Skript oder eine Pipeline gehen kann.
Häufige Fragen
Ist das wirklich jq?
Es ist ein unabhängiger Interpreter für die Grammatik von jq, getestet gegen die Beispiele in jqs eigenem Handbuch. Das deckt die Sprache und die gängigen Builtins ab; es ist keine Kompilierung von jq selbst, sodass alles, was von jqs C-Interna abhängt, abweichen wird.
Warum funktioniert `input` nicht?
Weil es hier ein Dokument gibt, keinen Strom, aus dem ein Filter mehr ziehen könnte. `input`, `inputs`, `$ENV`, `env`, `label`/`break`, `--stream` und Module werden auf der Seite alle als nicht unterstützt aufgeführt, statt rätselhaft zu scheitern.
Mein regulärer Ausdruck verhält sich anders als in jq.
jq verwendet Oniguruma; hier wird die Engine des Browsers verwendet. In der Praxis funktionieren `\p{L}` und benannte Gruppen in beiden, und die Unterschiede zeigen sich bei Lookbehind und einigen Zeichenklassen-Escapes. Wenn ein Muster wichtig ist, testen Sie es auf der Maschine, die es ausführen wird.
Es hat bei 5.000 Ausgaben aufgehört.
Eine absichtliche Grenze, zusammen mit einer Schrittgrenze. `..` über ein großes Dokument erzeugt enorme Ausgaben, und ein Filter mit durchgehender Rekursion würde sonst den Tab aufhängen. Grenzen Sie den Filter ein, oder führen Sie ihn auf der Kommandozeile aus, wo Sie nach `head` pipen können.
Eingabe aus
JSON-Lines-Konverter
JSON Lines Converter
Wandelt zwischen NDJSON und einem JSON-Array um und meldet jede nicht lesbare Zeile mit ihrer Nummer, statt abzubrechen.
JSONPath-Tester
JSONPath Tester
Führt einen JSONPath-Ausdruck gegen ein Dokument aus und hebt die passenden Knoten beim Tippen hervor.
JSON formatieren und validieren
JSON Formatter & Validator
Formatiert, minimiert und validiert JSON und zeigt bei Syntaxfehlern die genaue Zeile und Spalte.
YAML formatieren und validieren
YAML Formatter & Validator
Rückt YAML einheitlich ein, validiert es und markiert die Tab- und Anker-Fehler, an denen Parser scheitern.
Danach
Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.
JSON ⇄ CSV umwandeln
JSON ⇄ CSV
Flacht verschachteltes JSON zu Spalten ab oder baut Objekte aus einer Tabelle wieder auf, mit Punktpfad-Regel für die Spaltennamen.
JSON formatieren und validieren
JSON Formatter & Validator
Formatiert, minimiert und validiert JSON und zeigt bei Syntaxfehlern die genaue Zeile und Spalte.
JSONPath-Tester
JSONPath Tester
Führt einen JSONPath-Ausdruck gegen ein Dokument aus und hebt die passenden Knoten beim Tippen hervor.
JSON-Lines-Konverter
JSON Lines Converter
Wandelt zwischen NDJSON und einem JSON-Array um und meldet jede nicht lesbare Zeile mit ihrer Nummer, statt abzubrechen.
Base64 kodieren und dekodieren
Base64 Encoder & Decoder
Kodiert und dekodiert Base64 und Base64URL für Text oder Dateien und behandelt UTF-8 korrekt.
curl in Code
curl to Code
Wandelt einen curl-Befehl in fetch, axios, Python requests, Go, PHP oder PowerShell um.