JSON-Abfragetool (jq-ähnlich)

Fragen Sie JSON-Daten mit jq-ähnlicher Syntax ab und transformieren Sie sie. Extrahieren, filtern und umformen mit Pipes, selects, maps, sort_by, unique, flatten und mehr.

Aktualisiert am

Share:
Home/Utility Tools/JSON Query (jq-like)

JSON Query (jq-like)

Query and transform JSON data using jq-like syntax. Extract, filter, and reshape JSON with a powerful mini query language.

JSON Input

541 B

Result

Error

Query Error

Unknown accessor: .users[].name

jq Syntax Reference

Access

.Identity (whole doc)
.keyObject key
.a.bNested key
.[]Iterate array
.[0]Array index
.[0:3]Array slice

Transforms

lengthArray/string length
keysObject keys
valuesObject values
uniqueDeduplicate
flattenFlatten nested arrays
first / lastFirst/last element

Filter & Map

select(.k == "v")Filter by condition
map(.key)Map over array
sort_by(.key)Sort by field
|Pipe / chain ops

Häufig gestellte Fragen

Was ist das JSON Query Tool (jq-ähnlich)?

Das JSON Query Tool (jq-ähnlich) ist ein kostenloses Online-Tool, das JSON-Daten mit einer jq-ähnlichen Syntax abfragt und transformiert. Extrahiere, filtere und strukturiere Daten um – mit Pipes, Selects, Maps, sort_by, unique, flatten und mehr. Es läuft vollständig in deinem Browser, ohne Installation oder Anmeldung.

Welche jq-Syntax?

Punktzugriff (.key), Array-Iteration (.[], .[0]), Slicing (.[0:3]), Pipes (|), select-Filter, map, sort_by, unique, flatten, keys, values, length, first und last.

Ist es das vollständige jq?

Nein – es deckt die am häufigsten verwendeten Muster ab. Das vollständige jq hat Hunderte eingebauter Funktionen; dieses Tool beherrscht die 18 Operationen, die 90 % der gängigen Abfragen abdecken.

Ist mein JSON sicher?

Ja. Die gesamte Verarbeitung erfolgt in deinem Browser. Es werden keine Daten an einen Server gesendet.

Ist das JSON Query Tool (jq-ähnlich) kostenlos?

Ja, das JSON Query Tool (jq-ähnlich) ist zu 100 % kostenlos, ohne Registrierung, ohne versteckte Gebühren und ohne Nutzungslimits. Die gesamte Verarbeitung erfolgt lokal in deinem Browser und gewährleistet vollständige Privatsphäre.

Sind meine Daten mit diesem Tool sicher?

Absolut. Das JSON Query Tool (jq-ähnlich) verarbeitet alles clientseitig in deinem Browser. Es werden keine Daten auf einen Server hochgeladen oder dort gespeichert. Deine Inhalte bleiben jederzeit privat auf deinem Gerät.

Funktioniert das JSON Query Tool (jq-ähnlich) auf Mobilgeräten?

Ja, das JSON Query Tool (jq-ähnlich) ist vollständig responsiv und funktioniert auf Smartphones und Tablets. Du kannst es auf jedem Gerät mit einem modernen Webbrowser nutzen – ohne App-Download.

Muss ich ein Konto erstellen, um dieses Tool zu nutzen?

Es ist kein Konto und keine Registrierung erforderlich. Öffne einfach das JSON Query Tool (jq-ähnlich) in deinem Browser und beginne sofort mit der Nutzung. Es gibt keine Anmeldeschranken oder Nutzungsbeschränkungen.

Wie verwende ich das JSON Query Tool (jq-ähnlich)?

Gib einfach deine Daten in das vorgesehene Feld ein, passe die Einstellungen nach Wunsch an, und das Tool verarbeitet sie sofort. Anschließend kannst du das Ergebnis in die Zwischenablage kopieren oder herunterladen.

Welche Browser werden unterstützt?

Das JSON Query Tool (jq-ähnlich) funktioniert in allen modernen Browsern, darunter Chrome, Firefox, Safari, Edge und Opera. Für das beste Erlebnis verwende die neueste Version deines bevorzugten Browsers.

Was macht die Pipe (|) in einer jq-Abfrage?

Die Pipe reicht die Ausgabe eines Schritts an den nächsten weiter, sodass sich eine Abfrage von links nach rechts wie ein kleines Fließband lesen lässt. In ".users | select(.active == true) | map(.name)" holt der erste Schritt das Users-Array, der zweite behält nur die Einträge, bei denen active true ist, und der dritte projiziert nur den Namen aus jedem verbleibenden Datensatz heraus. Jede Stufe arbeitet mit dem, was die vorherige Stufe erzeugt hat, weshalb die Reihenfolge wichtig ist: Man grenzt meist zuerst auf ein Array ein, filtert dann, und mappt oder sortiert anschließend. Ohne die Pipe wäre man auf einen einzelnen Zugriffsausdruck beschränkt. Verkettung verwandelt eine tief verschachtelte API-Response in genau die gewünschten Werte in einer einzigen Zeile. Tippen Sie oben eine verkettete Abfrage in die Leiste ein, und das Ergebnis aktualisiert sich live, während Sie jede Stufe aufbauen.

Wie extrahiere ich ein einzelnes Feld aus jedem Element eines JSON-Arrays?

Verwenden Sie map mit einem Punktpfad, um ein Feld aus jedem Element zu projizieren. Für eine Liste von Nutzern gibt ".users | map(.email)" ein flaches Array mit nur den E-Mail-Werten zurück und lässt alle anderen Felder weg. Das ist der schnellste Weg, um aus einer umfangreichen API-Liste eine einzelne Spalte zu machen, die Sie durchsehen, kopieren oder in eine Tabellenkalkulation einfügen können. Wenn Sie nur die eindeutigen Werte möchten, hängen Sie unique an: ".users | map(.role) | unique" fasst Wiederholungen zusammen, sodass Sie jede unterschiedliche Rolle nur einmal sehen. Sie können auch verschachtelte Felder erreichen, etwa map(.address.city), solange der Pfad bei jedem Element existiert. Das Ergebnisfeld zeigt die Elementanzahl an, sodass Sie bestätigen können, dass Sie einen Wert pro Datensatz erhalten haben. Fügen Sie Ihr Array oben ein und führen Sie eine map-Abfrage aus, um die gewünschte Spalte herauszuziehen.

Warum liefert meine Abfrage einen Fehler wie 'Cannot slice non-array' oder eine Typinkompatibilität?

Die meisten Abfragefehler entstehen, wenn eine Operation auf den falschen Werttyp angewendet wird. Slicing mit .[0:3], Indexierung mit .[0] und Helfer wie unique, flatten und sort_by erwarten alle ein Array, sodass das Anwenden auf ein Objekt oder einen String eine Typinkompatibilität auslöst, anstatt einfach zu raten. Eine häufige Ursache ist ein vergessener Zwischenschritt: ".[0]" schlägt bei einem Dokument fehl, dessen oberste Ebene ein Objekt ist, während ".users[0]" funktioniert, weil .users das Array ist. Das Tool zeigt eine verständliche Fehlermeldung an, die erklärt, was schiefgelaufen ist, statt stillschweigend zu versagen, sodass Sie leicht erkennen, dass Sie zuerst in einen Schlüssel hineinmüssen. Prüfen Sie, ob der Wert an dieser Stelle tatsächlich eine Liste ist, meist indem Sie nur den Pfad vor der fehlschlagenden Operation ausführen. Passen Sie den Pfad oben in der Abfrageleiste an, und das Ergebnis läuft sofort erneut, sodass Sie die Korrektur bestätigen können.

Wie filtere ich JSON auf nur die Datensätze, die eine Bedingung erfüllen?

Verwenden Sie select mit einem Vergleich in den Klammern, um nur die gewünschten Elemente zu behalten. ".users | select(.role == "admin")" gibt nur die Admin-Konten zurück, während ".users | select(.age >= 18)" alle volljährigen Personen behält. Unterstützt werden die Vergleiche ==, !=, >, <, >= und <=, wobei die ordnenden Operatoren (>, <, >=, <=) für Zahlen gedacht sind und == bzw. != gleichermaßen bei Strings, Zahlen und booleschen Werten funktionieren. Da select über jedes Element eines Arrays läuft, leitet man normalerweise zuerst ein Array hinein. Kombinieren Sie es mit map, um in einem Durchgang zu filtern und zu projizieren, etwa ".users | select(.active == true) | map(.name)". Das Ergebnisfeld zeigt, wie viele Elemente den Filter überstanden haben – ein schneller Plausibilitätscheck, ob die Menge wie erwartet eingegrenzt wurde. Probieren Sie oben eine select-Abfrage an Ihren eigenen Daten oder dem eingebauten Beispiel aus.

Wie erhalte ich das letzte Element oder zähle die Anzahl der Datensätze in JSON?

Zum Zählen leiten Sie ein Array in length: ".users | length" gibt die Anzahl der Nutzer zurück, und bei einem String oder Objekt liefert es stattdessen die Zeichen- bzw. Schlüsselanzahl. Um Endpunkte zu erhalten, ohne die Größe zu kennen, verwenden Sie first und last, wie in ".metadata.tags | last", oder indexieren Sie vom Ende her mit einer negativen Zahl wie .[-1], was das Tool relativ zur Länge des Arrays auflöst. Das ist praktisch für Stichproben, etwa das Zählen von Datensätzen vor und nach einem Filter, um zu sehen, wie viele ein select entfernt hat, oder das Auslesen des neuesten Eintrags in einem log-artigen Array. Das Ergebnisfeld zeigt außerdem den Ausgabetyp und die Elementanzahl neben der Byte-Größe an, was eine zweite Bestätigung der Zahl liefert. Laden Sie Ihr JSON oben und leiten Sie es in length, first oder last, um die benötigten Zahlen abzulesen.

Über das JSON Query Tool

Das JSON Query Tool ist ein kostenloser Spielplatz direkt im Browser, um JSON-Daten mit einer jq-ähnlichen Syntax zu filtern, umzuformen und aufzuschlüsseln. Fügen Sie links ein JSON-Dokument ein, tippen Sie oben in die Leiste eine Abfrage ein, und das passende Ergebnis erscheint rechts – live, während Sie tippen. Entwickelt für Entwickler, Data Engineers, QA-Tester und alle, die schon einmal vor einer Wand aus API-Response-JSON saßen und eigentlich nur die drei Felder brauchten, auf die es ankommt.

jq ist der De-facto-Standard unter den Kommandozeilen-Prozessoren für JSON, aber es ist nicht überall installiert, und seine vollständige Syntax ist ziemlich dicht. Dieses Tool bildet die gängigsten Muster direkt in einem Browser-Tab ab – kein brew install, kein Terminal, kein Escapen von Anführungszeichen in der Shell. Alles läuft lokal in JavaScript: Ihr JSON verlässt niemals Ihr Gerät, was wichtig ist, wenn es sich um eine Produktions-Response, einen Auth-Token-Blob oder etwas anderes handelt, das Sie lieber nicht auf irgendeinem Server einfügen möchten.

Die unterstützte Abfragesprache

Das Tool bringt einen fokussierten Interpreter mit, der rund 18 Operationen abdeckt – genau die Handvoll, die den Großteil der alltäglichen Fragen an ein JSON-Dokument beantwortet:

  • Zugriff. gibt das gesamte Dokument zurück, .key liest ein Feld, .a.b folgt verschachtelten Schlüsseln, .[] iteriert über die Werte eines Arrays oder Objekts, .[0] indexiert (negative Werte wie .[-1] zählen vom Ende her), und .[0:3] schneidet einen Bereich heraus.
  • Transformationenlength zählt Elemente oder Zeichen, keys listet die Schlüssel eines Objekts auf (sortiert), values gibt dessen Werte zurück, unique entfernt doppelte Einträge, flatten löst verschachtelte Arrays auf, und first / last greifen die Endpunkte eines Arrays.
  • Filtern und Mappenselect(.role == "admin") behält nur passende Elemente, map(.age) projiziert ein Feld aus jedem Element heraus, und sort_by(.age) ordnet ein Array anhand eines Feldes.

Vergleiche innerhalb von select unterstützen ==, !=, >, <, >= und <=, wobei die ordnenden Operatoren für Zahlen gedacht sind. Das Pipe-Symbol | verkettet Schritte, sodass sich .users | select(.active == true) | map(.name) von links nach rechts lesen lässt: Nimm die Nutzer, behalte nur die aktiven, ziehe dann nur ihre Namen heraus.

So funktioniert die Bedienung

Tippen Sie eine Abfrage ein, und das Ergebnis wird bei jedem Tastendruck neu berechnet; drücken Sie Enter oder den Run-Button, um sie in Ihrem Abfrageverlauf zu speichern (die letzten 20 bleiben als anklickbare Chips erhalten). Eine Reihe voreingestellter Abfrage-Buttons – Identität, Nutzer zählen, aktive Nutzer, nach Alter sortieren, eindeutige Rollen und mehr – dient sowohl als Schnellstart als auch als lebendiger Syntax-Spickzettel. Standardmäßig ist ein eingebautes Beispieldokument geladen, sodass Sie experimentieren können, bevor Sie Ihre eigenen Daten einfügen.

Das Ergebnisfeld zeigt den Typ und die Elementanzahl der Ausgabe an (zum Beispiel array(3) oder object(5 keys)) sowie die Byte-Größe sowohl Ihrer Eingabe als auch des Ergebnisses – ein schneller Plausibilitätscheck, ob ein Filter genau das herausgeschnitten hat, was Sie erwartet haben. Die Ausgabe ist formatiertes JSON, das Sie in die Zwischenablage kopieren oder als query-result.json-Datei herunterladen können. Ist eine Abfrage fehlerhaft oder trifft auf eine Typinkompatibilität – etwa das Slicing von etwas, das kein Array ist –, zeigt das Panel eine verständliche Fehlermeldung an, statt stillschweigend zu versagen.

Wofür es sich eignet und was Sie erwarten können

Typische Aufgaben sind das Herausziehen einer einzelnen Spalte aus einer API-Liste (map(.email)), das Zählen von Datensätzen vor und nach einem Filter, das Entfernen doppelter Einträge aus einem Tag-Array, das Auffinden von Admin-Konten in einem Nutzer-Dump oder das Sortieren von Ergebnissen, um die höchsten und niedrigsten Werte auf einen Blick zu erkennen. So wird aus einer 200-Zeilen-Response in Sekunden die gesuchte Antwort.

Dies ist bewusst eine Teilmenge von jq, keine vollständige Neuimplementierung. Das echte jq bringt Hunderte eingebaute Funktionen mit – Arithmetik, String-Interpolation, reduce, group_by, rekursiver Abstieg, eigene Funktionen – und das liegt außerhalb des Funktionsumfangs dieses Tools. Wenn eine Abfrage auf Funktionen jenseits der oben genannten Operationen angewiesen ist, führen Sie sie im echten jq auf der Kommandozeile aus. Für die alltägliche Aufgabe „gib mir einfach dieses Feld" bringt Sie das JSON Query Tool aber ans Ziel, ohne den Browser zu verlassen.