Przejdź do treści

jq filter builder

Przekształć dokument JSON w działający filtr jq i natychmiast zobacz wynik.

Wejście
Wynik

jq filter builder

Wklej dokument JSON, a narzędzie wyświetli wszystkie ścieżki pól, które w nim znajdzie — w samej składni jq z kropkami i nawiasami: .users[].email, .items[0].price i tak dalej — abyś nie musiał zgadywać struktury danych, których nie napisał sam. Wybierz jedną z tych ścieżek, albo napisz własną, a narzędzie wokół niej utworzy działający filtr jq.

Opcja operacji określa, jaki rodzaj filtru zostanie utworzony. Wybór (Select) zwraca wartość lub wartości na ścieżce, po jednej na linię, dokładnie tak, jak robi to czysty jq. Mapowanie (Map) otula te same wartości w jedną tablicę JSON z nawiasami kwadratowymi. Filtrowanie (Filter) wymaga ścieżki kończącej się na [] i warunku takiego jak age > 18 lub status == "active" — zachowuje tylko elementy spełniające warunek, używając select() w tle. Agregacja (Aggregate) jest skierowana na całą tablicę (bez koncowego []) i raportuje jej liczbę, a — gdy każdy element jest liczbą — także sumę, minimum i maksimum; dodaj warunek, aby agregować tylko elementy, które go spełniają.

Surowy tekst wyjścia usuwa cudzysłowy z wyników stringów, odpowiadając flagi -r w jq; kompaktne wyjście zwija JSON do jednej linii zamiast wcięcia dwiema spacjami. Opcja wersji składni jq oznaczy wygenerowany filtr komentarzem dla jq 1.5, 1.6 lub 1.7 — przydatne, gdy przypinasz potok do określonej wersji — bez zmiany sposobu obliczania podglądu, ponieważ podzbiór jq implementowany przez to narzędzie zachowuje się jednakowo we wszystkich trzech. Warunki obsługują ==, !=, >, >=, <, <= i contains, i porównują z liczbami, stringami, boolami, null lub cytowanym tekstem.

Wszystko działa lokalnie w przeglądarce: JSON, który wklejasz, filtr, który tworzysz, i wynik, który generuje, nigdy nie opuszczają urządzenie. Gdy jesteś zadowolony z filtru, skopiuj wynik, pobierz go jako plik .txt, albo wyślij wyjście z powrotem do wejścia i kontynuuj dopracowywanie.

Częste pytania

Czy uruchamia to rzeczywisty plik binarny jq?
Nie. Implementuje praktyczny podzbiór składni ścieżki jq i operacji w JavaScripcie, więc ten sam filtr, który widzisz tutaj, może wymagać dostosowania w przypadkach granicznych, które obsłużyłaby pełna instalacja jq.
Dlaczego Filtr wymaga ścieżki kończącej się []?
Filtrowanie zachowuje lub odrzuca poszczególne elementy tablicy, więc ścieżka musi nazwać iterowaną kolekcję — .users[] zamiast .users. Narzędzie ci o tym powie, jeśli tak nie jest.
Co akceptuje pole warunku?
Nazwa pola plus operator i wartość, taka jak age > 18 lub status == "active", albo tylko operator i wartość (> 10) do porównania elementów tablicy bezpośrednio. Obsługiwane operatory to ==, !=, >, >=, <, <= i contains.
Dlaczego Agregacja wyświetla liczbę tylko dla niektórych ścieżek?
Suma, minimum i maksimum mają sens tylko dla tablicy liczb. Gdy tablica zawiera obiekty — listę użytkowników, powiedzmy — nadal otrzymujesz liczbę, opcjonalnie zawężoną warunkiem najpierw.
Czy mój JSON jest gdzieś przesyłany?
Nie. Analiza, odkrywanie ścieżek i filtrowanie wszystko dzieje się w przeglądarce — dokument nigdy nie zostaje wysłany na serwer.