Zum Inhalt springen
100% lokal

jq-Filter-Generator

Aus einem JSON-Dokument einen funktionierenden jq-Filter erstellen, live an den eigenen Daten getestet.

Eingabe
Ausgabe

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.

Häufige Fragen

Läuft hier ein echtes jq-Binary?
Nein. Das Werkzeug bildet eine praxistaugliche Teilmenge der jq-Pfadsyntax und -Operationen in JavaScript nach, sodass derselbe Filter bei Randfällen, die eine vollständige jq-Installation abdeckt, noch Anpassung brauchen kann.
Warum braucht Filter einen Pfad mit []?
Filtern behält oder verwirft einzelne Elemente eines Arrays, der Pfad muss also eine iterierte Sammlung benennen — .users[] statt .users. Fehlt das, weist das Werkzeug darauf hin.
Was akzeptiert das Feld Bedingung?
Einen Feldnamen mit Operator und Wert, etwa age > 18 oder status == "active", oder nur Operator und Wert (> 10), um die Elemente eines Arrays direkt zu vergleichen. Unterstützt werden ==, !=, >, >=, <, <= und contains.
Warum zeigt Aggregate nur eine Anzahl für manche Pfade?
Summe, Minimum und Maximum ergeben nur bei einem Array aus Zahlen Sinn. Enthält das Array Objekte — etwa eine Liste von Nutzern — bekommen Sie trotzdem eine Anzahl, wahlweise vorab durch eine Bedingung eingegrenzt.
Wird mein JSON irgendwohin hochgeladen?
Nein. Parsen, Pfaderkennung und Filtern geschehen vollständig im Browser — Ihr Dokument wird nie an einen Server gesendet.