jq-Filter-Generator
Aus einem JSON-Dokument einen funktionierenden jq-Filter erstellen, live an den eigenen Daten getestet.
jq-Filter-Generator
Fügen Sie ein JSON-Dokument ein, und dieses Werkzeug listet jeden Feldpfad auf, den es findet — in der gewohnten Punkt-und-Klammer-Syntax von jq, etwa .users[].email oder .items[0].price — sodass Sie den Aufbau fremder Daten nicht erst mühsam erraten müssen. Wählen Sie einen dieser Pfade aus, oder tippen Sie Ihren eigenen ein, und das Werkzeug baut daraus einen lauffähigen jq-Filter.
Die Option Operation bestimmt, welche Art Filter entsteht. Select gibt den Wert oder die Werte des Pfads aus, einen pro Zeile, genau wie jq das ohne weitere Zusätze tut. Map verpackt dieselben Werte in ein einziges JSON-Array. Filter braucht einen Pfad, der mit [] endet, sowie eine Bedingung wie age > 18 oder status == "active" — nur passende Elemente bleiben übrig, intern über select() gelöst. Aggregate zielt auf ein ganzes Array (ohne abschließendes []) und liefert dessen Anzahl, und wenn jedes Element eine Zahl ist, zusätzlich Summe, Minimum und Maximum; eine Bedingung schränkt dabei vorab ein, welche Elemente überhaupt gezählt werden.
Roher Textausgang entfernt die Anführungszeichen bei Zeichenketten, wie es jqs Schalter -r tut; kompakte Ausgabe drängt das JSON auf eine Zeile statt zweifacher Einrückung. Die jq-Syntaxversion versieht den erzeugten Filter nur mit einem Kommentar für jq 1.5, 1.6 oder 1.7 — praktisch, wenn eine Pipeline an eine bestimmte Version gebunden ist — ohne das berechnete Ergebnis zu verändern, denn die hier abgebildete Teilmenge von jq verhält sich in allen dreien identisch. Bedingungen unterstützen ==, !=, >, >=, <, <= und contains und vergleichen mit Zahlen, Zeichenketten, Booleschen Werten, null oder Text in Anführungszeichen.
Alles läuft ausschließlich lokal in Ihrem Browser: weder das eingefügte JSON noch der gebaute Filter noch das Ergebnis verlassen jemals Ihr Gerät. Sobald der Filter passt, kopieren Sie das Ergebnis, laden es als .txt-Datei herunter oder schicken die Ausgabe zurück in die Eingabe, um weiter zu verfeinern.