jq Playground
Füge JSON ein, schreibe einen jq-Filter und sieh das Ergebnis sofort. Führt das echte jq aus, kompiliert zu WebAssembly, vollständig in deinem Browser.
Dein JSON wird lokal von jq verarbeitet, das als WebAssembly in deinem Browser läuft, und nie hochgeladen, aber vermeide es, Geheimnisse oder Produktionsdaten in irgendein Tool einzufügen.
Brauchst du einen JSONPath statt jq? Probiere den JSONPath Evaluator.
Über jq Playground
Dieses jq Playground lässt dich jq-Filter gegen JSON ausführen, ohne etwas zu installieren. Füge ein JSON-Dokument ein, tippe einen Ausdruck wie .users | map(.name), .[] | select(.active) oder group_by(.type), und das Ergebnis erscheint, während du tippst. Es ist das echte jq 1.8.2, kompiliert zu WebAssembly, sodass dieselben Filter, Funktionen und die Pipe-Syntax, die du auf der Kommandozeile verwendest, hier funktionieren, einschließlich map, select, sort_by, group_by, to_entries und String-Interpolation. Schalte raw output (-r) ein, um Anführungszeichen aus String-Ergebnissen zu entfernen, oder compact output (-c), um jeden Wert in eine Zeile zu setzen. jq-Kompilier- und -Laufzeitfehler werden angezeigt, sodass du einen Filter schnell beheben kannst. Da jq als WebAssembly innerhalb der Seite läuft, wird das eingefügte JSON lokal auf deinem Gerät verarbeitet und nie an einen Server hochgeladen.
Funktionen
- Führt das echte jq 1.8.2 kompiliert zu WebAssembly aus, keine Teil-Neuimplementierung
- Live-Ergebnisse bei entprellter Änderung, plus einen Ausführen-Button und Cmd/Ctrl+Enter
- Raw-output-(-r)-Umschalter, um Strings ohne Anführungszeichen auszugeben
- Compact-output-(-c)-Umschalter für einen Wert pro Zeile
- Klare jq-Kompilier- und -Laufzeitfehler, aus stderr angezeigt
- Anklickbare Beispielfilter (map, select, group_by, length, sort), die die Abfrage füllen
- Kopiere die Ausgabe mit einem Klick
- WASM lädt erst, wenn du zum ersten Mal einen Filter ausführst, und bleibt dann warm
So verwendest du jq Playground
- Füge dein JSON in das JSON-Feld ein oder tippe es ein.
- Schreibe einen jq-Filter in das Filter-Feld, zum Beispiel .users | map(.name).
- Beobachte, wie sich die Ausgabe aktualisiert, oder drücke Ausführen / Cmd+Enter, um sofort auszuwerten.
- Schalte raw (-r) oder compact (-c) um, wenn du eine andere Formatierung brauchst.
- Klicke auf Kopieren, um das Ergebnis zu übernehmen.
Beispiel
Eingabe
{
"users": [
{ "name": "Ada", "active": true },
{ "name": "Linus", "active": false }
]
}
Ausgabe
[
"Ada"
]
Der Filter .users | map(select(.active)) | map(.name) behält nur aktive Nutzer und gibt ihre Namen zurück.
Häufige Fehler & Fehlerbehebung
- jq meldet einen Syntaxfehler wie "Unexpected end of input" oder "unexpected token". — Prüfe den Filter auf eine unausgeglichene Klammer oder Pipe, z. B. sollte .[ zu .[] oder .[0] werden; jq parst den ganzen Ausdruck, bevor es ihn ausführt.
- "Cannot iterate over null" oder "Cannot index ... with ...". — Der Pfad existiert nicht in deinen Daten. Verwende optionalen Zugriff wie .users[]? oder .field // empty und bestätige, dass die Schlüsselnamen mit deinem JSON übereinstimmen.
- Die String-Ausgabe hat immer noch umgebende Anführungszeichen. — Das ist normale JSON-Ausgabe. Schalte raw output (-r) ein, um den String ohne Anführungszeichen auszugeben, was du normalerweise beim Weiterleiten an eine Shell möchtest.
- Die Ausgabe ist leer, obwohl der Filter richtig aussieht. — Dein Filter hat möglicherweise keine Werte erzeugt (zum Beispiel ein select, das nichts getroffen hat). Probiere zuerst den Identitätsfilter ., um zu bestätigen, dass das JSON parst, und grenze dann ein.
Häufig gestellte Fragen
- Führt das hier das echte jq aus?
- Ja. Es führt jq aus, kompiliert zu WebAssembly, sodass es die tatsächliche jq-Engine ist, keine JavaScript-Neuimplementierung. Die Filter, eingebauten Funktionen und die Pipe-Semantik entsprechen dem jq, das du in einem Terminal ausführst.
- Welche jq-Version wird unterstützt?
- jq 1.8.2, via den jq-wasm-Build. Funktionen und Syntax, die in jq 1.8 verfügbar sind – etwa group_by, to_entries, ltrimstr und String-Interpolation mit \(...) –, funktionieren hier.
- Was machen die raw-(-r)- und compact-(-c)-Umschalter?
- Raw output (-r) gibt String-Ergebnisse ohne die umgebenden Anführungszeichen aus, entsprechend dem -r-Flag von jq. Compact output (-c) gibt jeden JSON-Wert in einer einzigen Zeile statt verschönert aus, entsprechend dem -c-Flag von jq.
- Wird mein JSON irgendwohin hochgeladen?
- Nein. jq läuft als WebAssembly innerhalb dieser Seite, sodass das eingefügte JSON und der geschriebene Filter lokal auf deinem Gerät ausgewertet und nicht an einen Server gesendet werden.
- Warum ist der erste Lauf etwas langsamer?
- Das jq-WebAssembly-Modul wird beim ersten Ausführen eines Filters heruntergeladen und initialisiert, weshalb du einen kurzen Ladezustand siehst. Danach bleibt es im Speicher und nachfolgende Läufe sind schnell.
- Kann ich Filter mit select, map und group_by ausführen?
- Ja. Ausdrücke wie .[] | select(.active), .users | map(.name) und group_by(.type) funktionieren alle, zusammen mit dem Rest von jqs Filter-, Transformations- und Aggregationsfunktionen.
Verwandte Tools
- JSON-Formatierer — JSON verschönern, minimieren und validieren – mit Fehlerposition.
- JSONPath Evaluator — Teste einen JSONPath-Ausdruck gegen dein JSON und sieh die Treffer live.
- JSON-Viewer — Text- und einklappbare Baumansicht mit Ein-/Ausklappen und Knotenpfaden.
- JSON Flatten / Unflatten — Flache verschachteltes JSON zu Schlüsseln in Punktnotation, oder mach es wieder rückgängig.
- JSON Diff — Vergleiche zwei JSON-Dokumente und sieh einen strukturellen Diff.
- YAML ↔ JSON — Konvertiere YAML zu JSON und zurück.
Alle ArrayKit-Tools