Preskoči na vsebino
100% lokalno

Graditelj filtrov jq

Spremenite dokument JSON v delujoč filter jq, s predogledom na lastnih podatkih.

Vhod
Izhod

Graditelj filtrov jq

Prilepite dokument JSON in orodje bo izpisalo vsako pot do polja, ki jo v njem najde, v jq-jevi lastni sintaksi s pikami in oglatimi oklepaji — .users[].email, .items[0].price in tako naprej — tako da vam ni treba ugibati zgradbe podatkov, ki jih niste sami napisali. Izberite eno od teh poti ali vpišite svojo, orodje pa okoli nje zgradi delujoč filter jq.

Možnost operacije določa, kakšen filter nastane. Select vrne vrednost ali vrednosti poti, eno na vrstico, natanko tako, kot čisti jq izpiše tok. Map iste vrednosti zavije v eno samo polje JSON z oglatimi oklepaji. Filter potrebuje pot, ki se konča z [], in pogoj, kot je age > 18 ali status == "active" — ohrani le elemente, ki ustrezajo, pri čemer v ozadju uporabi select(). Aggregate cilja na celotno polje (brez zaključnih []) in sporoči njegovo število, ob tem pa, kadar je vsak element število, tudi vsoto, najmanjšo in največjo vrednost; z dodanim pogojem lahko šteje le elemente, ki mu najprej ustrezajo.

Izpis surovega niza odstrani narekovaje iz nizovnih rezultatov, kar ustreza jq-jevi zastavici -r; strnjen izpis stisne JSON v eno vrstico namesto zamika z dvema presledkoma. Možnost različice sintakse jq generiranemu filtru le doda komentar za jq 1.5, 1.6 ali 1.7 — uporabno, kadar cevovod vežete na določeno različico — ne da bi spremenila, kaj predogled izračuna, saj se podmnožica jq, ki jo orodje uresničuje, v vseh treh vede enako. Pogoji podpirajo ==, !=, >, >=, <, <= in contains ter primerjajo s števili, nizi, logičnimi vrednostmi, null ali besedilom v narekovajih.

Vse se izvaja lokalno v vašem brskalniku: prilepljeni JSON, zgrajeni filter in dobljeni rezultat nikoli ne zapustijo vaše naprave. Ko ste s filtrom zadovoljni, kopirajte rezultat, ga prenesite kot datoteko .txt ali izhod pošljite nazaj na vhod, da ga še izpopolnite.

FAQ

Ali to zažene pravi binarni jq?
Ne. Orodje izvaja praktično podmnožico jq-jeve poti sintakse in operacij v JavaScriptu, zato lahko isti filter, ki ga vidite tukaj, za robne primere, ki bi jih obravnavala polna namestitev jq, potrebuje prilagoditev.
Zakaj Filter potrebuje pot, ki se konča z []?
Filtriranje obdrži ali zavrže posamezne elemente polja, zato mora pot poimenovati ponavljajočo se zbirko — .users[] namesto .users. Orodje vas na to opozori, če ni tako.
Kaj sprejme polje s pogojem?
Ime polja skupaj z operatorjem in vrednostjo, na primer age > 18 ali status == "active", ali le operator in vrednost (> 10) za neposredno primerjavo elementov polja. Podprti operatorji so ==, !=, >, >=, <, <= in contains.
Zakaj Aggregate za nekatere poti prikaže le število?
Vsota, najmanjša in največja vrednost imajo smisel le pri polju števil. Če polje vsebuje objekte — na primer seznam uporabnikov — še vedno dobite število, po želji najprej zoženo s pogojem.
Ali se moj JSON kam naloži?
Ne. Razčlenjevanje, odkrivanje poti in filtriranje potekajo v celoti v vašem brskalniku — dokument nikoli ni poslan na strežnik.