Přeskočit na obsah

jq filter builder

Převeďte JSON dokument na fungující jq filtr a okamžitě vidíte výsledek.

Vstup
Výstup

jq filter builder

Vložte JSON dokument a tento nástroj vypíše všechny cesty k polím, které v něm najde — v samotné syntaxi jq s tečkami a závorkami: .users[].email, .items[0].price a tak dále — aby jste nemuseli hádat strukturu dat, která jste sami nenavrhnuli. Vyberte jednu z těchto cest, nebo napište vlastní, a nástroj kolem ní vytvoří fungující jq filtr.

Možnost operace určuje, jaký druh filtru se vytvoří. Výběr (Select) vrátí hodnotu nebo hodnoty na cestě, po jedné na řádek, přesně tak, jak to tiská čistý jq. Mapování (Map) zabalí stejné hodnoty do jedného JSON pole se čtvercovými závorkami. Filtrování (Filter) potřebuje cestu končící se [] a podmínku jako age > 18 nebo status == "active" — zachová pouze prvky, které podmínku splňují, pomocí select() na pozadí. Agregace (Aggregate) je zaměřena na celé pole (bez koncového []) a hlásí jeho počet, a — když je každý prvek číslem — také součet, minimum a maximum; přidejte podmínku k agregaci pouze prvků, které ji splňují.

Výstup bez uvozovek odstraní uvozovky z řetězcových výsledků, což odpovídá příznaku -r v jq; kompaktní výstup sbalí JSON na jeden řádek místo odsazení dvěmi mezerami. Možnost verze syntaxe jq označí vygenerovaný filtr komentářem pro jq 1.5, 1.6 nebo 1.7 — užitečné, když připevňujete kanál na konkrétní verzi — bez změny toho, jak náhled počítá, protože podmnožina jq, kterou tento nástroj implementuje, se chová stejně ve všech třech. Podmínky podporují ==, !=, >, >=, <, <= a contains, a porovnávají s čísly, řetězci, booleovskými hodnotami, null nebo citovaným textem.

Všechno běží lokálně ve vašem prohlížeči: JSON, který vložíte, filtr, který vytváříte, a výsledek, který vytváří, nikdy neopustí vaše zařízení. Když jste s filtrem spokojeni, zkopírujte výsledek, stáhněte si jej jako soubor .txt, nebo pošlete výstup zpět do vstupu a pokračujte v refinaci.

Časté dotazy

Spouští to skutečný binární soubor jq?
Ne. Implementuje praktickou podmnožinu syntaxe cesty jq a operace v JavaScriptu, takže stejný filtr, který zde vidíte, by mohl vyžadovat úpravu na hraniční případy, které by zvládla úplná instalace jq.
Proč Filter potřebuje cestu končící se []?
Filtrování zachová nebo zahodí jednotlivé prvky pole, takže cesta musí pojmenovat iterovanou kolekci — .users[] místo .users. Nástroj vám to řekne, pokud tomu tak není.
Co pole podmínky přijímá?
Název pole plus operátor a hodnota, jako age > 18 nebo status == "active", nebo jen operátor a hodnota (> 10) pro porovnání prvků pole přímo. Podporované operátory jsou ==, !=, >, >=, <, <= a contains.
Proč Agregace ukazuje počet pouze pro některé cesty?
Součet, minimum a maximum mají smysl pouze pro pole čísel. Když pole obsahuje objekty — seznam uživatelů, například — stále získáte počet, volitelně zúžený podmínkou napřed.
Je můj JSON někde nahrán?
Ne. Parsování, objevování cesty a filtrování se děje v prohlížeči — váš dokument se nikdy neodešle na server.