Query String do JSON
Dekoduj query string z URL na obiekt JSON — powtarzające się klucze stają się tablicami
Query String
JSON
Co robi Query String do JSON?
Wklejasz query string po lewej — z lub bez początkowego ? — a po prawej wypełnia się obiekt JSON. Wartości są po drodze dekodowane z URL (więc customer=Ava%20Chen zamienia się w "customer": "Ava Chen"), a jeśli ten sam klucz pojawia się więcej niż raz, zwija się w tablicę JSON. Ten ostatni punkt to coś, co większość improwizowanych podziałów stringów robi źle, i dlatego ta strona istnieje.
Parsowanie korzysta z wbudowanego w przeglądarkę URLSearchParams — tego samego, co napędza request.query w każdym nowoczesnym frameworku webowym. URLSearchParams stosuje się do reguł application/x-www-form-urlencoded ze standardu URL WHATWG, czyli tego, co przeglądarki wysyłają, kiedy formularz robi POST. Wynik jest następnie serializowany przez JSON.stringify zgodnie z RFC 8259.
Wszystko działa w Twojej przeglądarce. Jeśli na wejściu jest pełny URL, strona jest wyrozumiała — wyciągnie z niego część query za Ciebie. Jeśli interesują Cię same komponenty URL (host, ścieżka itd.), użyj zamiast tego URL do JSON. Jeśli chcesz tylko popatrzeć na parametry bez zachowywania JSON-a, lepiej pasuje strona URL Parser. Reguły procentowego kodowania, które działają tutaj, są zdefiniowane w RFC 3986 §2.1.
Jak skonwertować Query String na JSON
Trzy kroki. Każdy odpowiada przyciskowi na tej stronie.
Wklej Query String
Wrzuć query string do lewego panelu. Dorzucenie początkowego ? jest OK — parser go usuwa. Kliknij Przykład, by załadować realistyczny e-commerce’owy URL z filtrem, z wartościami procentowo kodowanymi, notacją z nawiasami kwadratowymi i powtarzającym się kluczem tag. Przykład:
?customer=Ava%20Chen&status=active&total%5Bgte%5D=49.99&page=2&tag=premium&tag=verifiedMożesz też wkleić pełny URL w stylu <code>https://shop.example.com/orders?...</code>, a strona wyciągnie z niego część query.
Przeczytaj obiekt JSON
Prawy panel aktualizuje się, gdy piszesz. Każdy parametr to klucz, każda wartość jest zdekodowana, a powtarzające się klucze stają się tablicami. Powyższy przykład daje zatem "customer": "Ava Chen", "total[gte]": "49.99" i "tag": ["premium", "verified"]. Liczby zostają stringami — query stringi nie niosą informacji o typach, więc udawanie tylko ukrywałoby błędy.
Kopiuj, pobierz lub minifikuj
Kliknij Kopiuj, by wysłać JSON do schowka, Pobierz, by zapisać go jako querystring.json, lub Minifikuj, by ścisnąć go do jednej linii. Wyczyść resetuje panel wejściowy.
Kiedy naprawdę byś tego użył
Debugowanie logów żądań
Logi serwera wyrzucają całą linię żądania, razem z query stringiem. Kiedy polujesz, dlaczego wyszukiwanie klienta nic nie zwróciło, skopiowanie z loga ?customer=Marco%20Rivera&status=cancelled&date_from=2026-04-01&date_to=2026-04-30 na tę stronę jest szybsze niż dekodowanie każdej wartości w głowie. JSON sprawia, że prawdziwe wartości filtrów są oczywiste.
Generowanie fixturów testowych z prawdziwego ruchu
Piszesz testy do endpointu, który przyjmuje 12 parametrów query. Bierzesz prawdziwy URL z produkcji, wklejasz tu query string i używasz JSON-a jako obiektu parametrów w teście. Prawdziwe imiona, prawdziwe kształty, prawdziwe złapane bugi — bije wymyślanie customer: "ORD-1001" z głowy.
Migracja między konwencjami query string
Różne stacki kodują tablice różnie — ?tag=red&tag=blue, ?tag[]=red&tag[]=blue, ?tag=red,blue. Najpierw konwersja do JSON-a daje neutralną formę pośrednią. Stamtąd transformacja do docelowej konwencji to skrypt w 5 liniach zamiast archeologii regexowej.
OAuth, webhooki i callbacki analityki
Callbacki OAuth wracają jako ?code=abc&state=xyz. URL-e webhooków od serwisów takich jak Stripe czy GitHub upychają metadane w query stringu. Przekierowania analityki dokładają na to tuzin parametrów UTM i trackingowych. Wklejenie tu samej części query prowadzi cię prosto do obiektu parametrów, bez konieczności wcześniejszego odzierania hosta.
Częste pytania
Czy muszę dołączać początkowy znak zapytania?
Nie — wklej z nim albo bez. Parser usuwa początkowy ?, jeśli go widzi. Możesz nawet wkleić pełny URL (https://api.shop.example.com/orders?customer=Ava%20Chen) — strona wyciągnie z niego część query.
Jak obsługiwane są powtarzające się klucze?
Zwijają się w tablicę JSON. Tak więc ?tag=premium&tag=verified staje się "tag": ["premium", "verified"]. Pasuje to do zachowania URLSearchParams.getAll() i tego, jak Express, FastAPI, ASP.NET i Spring parsują query stringi.
A klucze bez wartości jak ?debug albo ?dry-run?
Stają się pustymi stringami — "debug": "". URLSearchParams traktuje klucz bez = tak samo jak key= zgodnie ze standardem URL WHATWG. Jeśli potrzebujesz prawdziwego boolean-a, przerób JSON-a po fakcie czymś w stylu obj.debug = "debug" in obj.
A notacja z nawiasami kwadratowymi jak ?items[]=1&items[]=2?
Nawiasy zostają częścią klucza — w wyniku zobaczysz "items[]": ["1", "2"]. To uczciwe wobec bajtów na drucie. Jeśli twój framework (PHP, Rails, qs.js) wymaga, żeby nawiasy zdjąć albo rozłożyć w zagnieżdżone obiekty, zrób to jako post-processing.
Czemu wszystkie wartości są stringami, nawet jeśli wyglądają jak liczby albo boolean-y?
Bo query stringi nie niosą informacji o typach. ?count=5 i ?count=true to po prostu tekst. Automatyczne rzutowanie na liczby albo boolean-y sprawia, że przykład z happy path wygląda schludnie, ale powoduje ciche bugi w momencie, gdy nazwa klienta to "1" albo ktoś wpisze ?id=007. Wynik zostaje stringiem; konwertuj w swoim kodzie tam, gdzie znasz schemat.
Jak radzi sobie z Unicode i emoji?
Czysto. URLSearchParams procentowo dekoduje bajty, a potem interpretuje je jako UTF-8 — więc ?name=%E4%B8%AD%E6%96%87 staje się "name": "中文", a emoji jak ?reaction=%F0%9F%94%A5 stają się "reaction": "🔥". Następnie JSON.stringify escape’uje to, co trzeba escape’ować, zgodnie z RFC 8259 §7.
Inne narzędzia URL i JSON
Dekodowanie query stringa to jedna operacja. Oto, co dobrze się z tym łączy: