URL na JSON
Zamień dowolny URL w ustrukturyzowany obiekt JSON — gotowy do wklejenia do configu, fixture'a lub testu
URL
JSON
Co robi URL na JSON?
Wklejasz URL po lewej, a po prawej dostajesz obiekt JSON z każdą częścią URL-a oznaczoną — protocol, host, pathname, searchParams, hash, wszystko. Sens nie polega na tym, żeby spojrzeć raz i zapomnieć. Sens polega na tym, żeby ten JSON skopiować w miejsce, w którym ma żyć — plik konfiguracyjny, fixture Jesta, środowisko Postmana, manifest YAML, mock requesta dla testów. URL-e w postaci stringa łatwo się pisze, ale trudno na nich asercjuje; ustrukturyzowane obiekty są dokładnie odwrotnie.
Pod maską to ten sam algorytm, którego każda przeglądarka używa przez URL API implementujące WHATWG URL Standard. Parametry zapytania są dekodowane po drodze — %20 zamienia się w spację, %5B w [, powtarzające się klucze trafiają do tablicy JSON — to samo zachowanie, które zwraca URLSearchParams. Wynik jest następnie formatowany według tych samych zasad JSON.stringify, których używa każde inne narzędzie JSON na tej stronie.
Jeśli chcesz tylko spojrzeć na części URL-a na ekranie — zdebugować przekierowanie, rzucić okiem na łańcuch trackerów — strona URL Parser pasuje lepiej. Obie strony robią tę samą konwersję; ta jest skrojona pod przypadek, w którym sam JSON jest artefaktem, który zachowujesz. Wszystko dzieje się lokalnie w twojej przeglądarce, bez uploadu, bez logów. Konwersja idzie zgodnie z RFC 3986 w sprawie składni i RFC 8259 dla wyjścia JSON.
Jak zamienić URL na JSON
Trzy kroki. Każdy odpowiada przyciskowi na tej stronie.
Wklej URL albo wczytaj przykład
Wrzuć URL do lewego panelu. Kliknij Przykład, żeby wczytać realistyczny URL e-commerce z procentowym kodowaniem, powtarzającymi się kluczami zapytania i fragmentem hash. Przykład:
https://api.shop.example.com/v1/orders?customer=Ava%20Chen&status=active&total%5Bgte%5D=49.99&page=2#summaryWszystko, co konstruktor URL akceptuje, działa — <code>http://</code>, <code>https://</code>, <code>file://</code>, <code>mailto:</code>, hosty IPv6 i userinfo.
Przeczytaj wyjście JSON
Prawy panel aktualizuje się, gdy piszesz. Zobaczysz protocol, host, port, pathname, pathSegments (ścieżka rozbita na tablicę), searchParams (zdekodowane pary klucz-wartość, z tablicami dla powtarzających się kluczy) i hash. Pole href trzyma kanoniczną, znormalizowaną postać URL-a — przydaje się, gdy chcesz potwierdzić, że dwa URL-e są równoważne, nawet jeśli jeden miał domyślny port albo końcowy slash.
Skopiuj, pobierz albo zminifikuj pod swoją fixture
Kliknij Kopiuj, żeby wysłać JSON do schowka, Pobierz, żeby zapisać jako url.json, albo Minifikuj, żeby ścisnąć go do jednej linii pod log albo parametr zapytania. Wyczyść w panelu wejścia resetuje oba edytory.
Kiedy faktycznie tego użyjesz
Budowanie fixture'ów requestów HTTP
Kiedy testy asercjują na URL-u, asercja na stringu jest krucha — wielkość liter, domyślne porty, końcowe slashe i kolejność parametrów potrafią ugryźć. Zamień URL na JSON, wrzuć obiekt do fixture'a i asercjuj pole po polu. Ładnie pasuje z bibliotekami w stylu Mock Service Worker albo Nock, które dopasowują po kształcie URL-a.
Ziarna klientów API w plikach konfiguracyjnych
Konfiguracja YAML albo JSON, która trzyma bazowy URL jako pojedynczy string, zmusza każdego konsumenta do parsowania go od nowa. Trzymanie go z góry rozłożonego (host, port, basePath, defaultParams) sprawia, że konfiguracja sama się dokumentuje i eliminuje całą klasę bugów typu "czy zapomnieliśmy końcowego slasha". Przydaje się w generatorach SDK i narzędziach OpenAPI.
Dokumentacja callbacków OAuth i webhooków
Kiedy piszesz dokumentację, która pokazuje "twój URL callbacku będzie wyglądał tak", umieszczenie rozkładu JSON obok surowego URL-a jest dużo bardziej przyjazne dla czytelnika. Standardy takie jak RFC 6749 wymagają konkretnych parametrów zapytania; ustrukturyzowana forma sprawia, że "tu powinieneś zobaczyć state" rzuca się w oczy od razu.
Eksporty środowisk Postman / Bruno / HTTPie
Większość klientów API trzyma URL-e wewnętrznie jako rozłożone obiekty. Jeśli importujesz stare URL-e do nowej kolekcji — powiedzmy, migrując ze strony z dokumentacją, która listuje endpointy jako gołe stringi — zamiana ich najpierw na JSON pozwala zeskryptować import zamiast klikać 200 endpointów ręcznie.
Częste pytania
Czym to się różni od strony URL Parser?
Ten sam silnik, inne podejście. URL Parser jest do inspekcji — wklejasz długi URL, patrzysz na części, decydujesz, co jest nie tak, zamykasz zakładkę. URL na JSON jest do tego, żeby wziąć wynik i użyć go gdzieś indziej — w pliku fixture'a, configu, w środowisku Postmana. Wyjście JSON jest identyczne; teksty i przypadki użycia są dostrojone pod workflow "chcę to mieć w pliku".
Czemu wyjście to JSON, a nie YAML albo literał obiektu JS?
JSON to najmniejszy wspólny mianownik — czyta go każdy język, każdy system konfiguracji, każdy framework testowy. Jeśli potrzebujesz YAML-a, przepuść JSON przez nasze narzędzie JSON na YAML. Jeśli potrzebujesz literału obiektu JS, JSON już jest poprawnym JS-em — wklej go bezpośrednio w pliku .ts. Konwersja zgodna jest z RFC 8259, więc wyjście działa wszędzie tam, gdzie JSON jest akceptowany.
Jak są reprezentowane powtarzające się klucze zapytania?
Powtarzające się klucze trafiają do tablicy. ?tag=red&tag=blue staje się "tag": ["red", "blue"]. Tak query stringi parsują Express, FastAPI, ASP.NET, Spring i większość frameworków — i to samo zwraca URLSearchParams.getAll().
A co z tablicami w notacji nawiasowej, typu ?items[]=1&items[]=2?
Nawiasy zostają częścią klucza — w wyniku zobaczysz "items[]": ["1", "2"]. To wierne odwzorowanie bajtów lecących po sieci. Jeśli twój framework (PHP, Rails, qs.js) potrzebuje, żeby nawiasy zostały zdjęte albo rozwinięte w zagnieżdżony obiekt, zrób to w kroku post-processingu na JSON-ie.
Czy JSON zawiera hasło, jeśli mój URL ma user:pass@host?
Tak — pola username i password pojawią się w wyniku, jeśli twój URL je zawiera. Konwersja działa w całości w twojej przeglądarce, więc dane uwierzytelniające nigdy nie opuszczają twojej maszyny. Niemniej, wpisywanie danych uwierzytelniających w URL-u to generalnie kiepski pomysł (patrz RFC 3986 §3.2.1) i niemal na pewno chcesz je usunąć przed zacommitowaniem JSON-a do repo.
Czy mogę przekonwertować listę URL-i na raz?
Nie na tej stronie — jedna sesja konwertuje jeden URL. Jeśli masz sto URL-i do przetworzenia, najprościej skopiować strukturę wyjścia tej strony do małego skryptu i wziąć w pętlę. Albo, po zeskryptowaniu batcha samodzielnie, użyć naszego JSON Formattera. Konwersja wsadowa jako funkcja UI jest na roadmapie, ale jeszcze nie wyszła.
Inne narzędzia URL i JSON
Konwersja to jedna operacja. Naturalnie pasują z nią: