Query String

JSON

Hvad gør Query String til JSON?

Du indsætter en query string til venstre — med eller uden indledende ? — og højre side fyldes med et JSON-objekt. Værdier URL-afkodes undervejs (så customer=Ava%20Chen bliver "customer": "Ava Chen"), og hvis den samme nøgle optræder mere end én gang, samles den i et JSON-array. Det sidste er præcis det, de fleste improviserede string-splits får galt i halsen, og det er derfor denne side findes.

Parsningen bruger browserens indbyggede URLSearchParams — det samme som driver request.query i alle moderne web-frameworks. URLSearchParams følger reglerne for application/x-www-form-urlencoded fra WHATWG URL Standard, hvilket er det browsere sender, når en formular POST'er. Outputtet serialiseres derefter via JSON.stringify efter RFC 8259.

Alt kører i din browser. Hvis dit input er en fuld URL, er siden eftergivende — den hiver query-delen ud for dig. Vil du kun have selve URL-komponenterne (host, path osv.), så brug i stedet URL til JSON. Vil du bare kigge på parametrene uden at gemme JSON, passer siden URL Parser bedre. Procentkodningsreglerne, der gælder her, er defineret af RFC 3986 §2.1.

Sådan konverterer du en Query String til JSON

Tre trin. Hvert ét svarer til en knap på siden.

1

Indsæt Query String

Smid query stringen i venstre panel. Det er fint at have det indledende ? med — parseren fjerner det. Klik Eksempel for at indlæse en realistisk e-handels-filter-URL med procentkodede værdier, klammenotation og en gentaget tag-nøgle. Eksempel:

?customer=Ava%20Chen&status=active&total%5Bgte%5D=49.99&page=2&tag=premium&tag=verified

Du kan også indsætte en fuld URL som <code>https://shop.example.com/orders?...</code> — siden trækker query-delen ud for dig.

2

Læs JSON-objektet

Højre panel opdaterer, mens du skriver. Hver parameter er en nøgle, hver værdi afkodes, og gentagne nøgler bliver til arrays. Eksemplet ovenfor giver altså "customer": "Ava Chen", "total[gte]": "49.99" og "tag": ["premium", "verified"]. Tal forbliver strenge — query strings bærer ingen typeinformation, så at lade som om ville bare skjule fejl.

3

Kopiér, download eller minificér

Klik Kopiér for at sende JSON til udklipsholderen, Download for at gemme det som querystring.json, eller Minificér for at presse det ned på én linje. Ryd nulstiller inputpanelet.

Hvornår du faktisk bruger det her

Debugge request-logs

Serverlogs dumper hele request-linjen, query string og det hele. Når du jagter, hvorfor en kundes søgning ikke gav noget, er det hurtigere at kopiere ?customer=Marco%20Rivera&status=cancelled&date_from=2026-04-01&date_to=2026-04-30 fra loggen ind på siden end at URL-afkode hver værdi i hovedet. JSON gør de faktiske filterværdier indlysende.

Generere test-fixtures fra reel trafik

Du skriver tests mod en endpoint, der tager 12 query-parametre. Tag en rigtig URL fra produktion, indsæt query stringen her, og brug JSON som parameterobjekt i din test. Rigtige navne, rigtige former, rigtige fejl fanget — bedre end at finde på customer: "ORD-1001" i hovedet.

Migrere mellem query string-konventioner

Forskellige stacks koder arrays forskelligt — ?tag=red&tag=blue, ?tag[]=red&tag[]=blue, ?tag=red,blue. At konvertere til JSON først giver dig en neutral mellemform. Derfra er det et 5-linjes script at transformere til målkonventionen, ikke regex-arkæologi.

OAuth, webhooks og analytics-callbacks

OAuth-callbacks kommer tilbage som ?code=abc&state=xyz. Webhook-URL'er fra tjenester som Stripe eller GitHub propper metadata ned i query stringen. Analytics-redirects stabler et dusin UTM- og tracking-parametre oveni. Ved at indsætte kun query-delen her kommer du direkte til parameterobjektet uden først at skulle skrælle hosten af.

Ofte stillede spørgsmål

Skal jeg have det indledende spørgsmålstegn med?

Nej — indsæt med eller uden. Parseren fjerner det indledende ?, hvis den ser et. Du kan endda indsætte en fuld URL (https://api.shop.example.com/orders?customer=Ava%20Chen) — siden trækker query-delen ud for dig.

Hvordan håndteres gentagne nøgler?

De samles i et JSON-array. Så ?tag=premium&tag=verified bliver "tag": ["premium", "verified"]. Det matcher adfærden i URLSearchParams.getAll() og måden Express, FastAPI, ASP.NET og Spring parser query strings på.

Hvad med værdiløse nøgler som ?debug eller ?dry-run?

De bliver til tomme strenge — "debug": "". URLSearchParams behandler en nøgle uden = som key= ifølge WHATWG URL Standard. Skal du bruge en ægte boolean, efterbehandl JSON med noget som obj.debug = "debug" in obj.

Hvad med klammenotation som ?items[]=1&items[]=2?

Klammerne bliver bevaret som del af nøglen — du ser "items[]": ["1", "2"] i outputtet. Det er ærligt over for byten på ledningen. Skal dit framework (PHP, Rails, qs.js) have klammerne fjernet eller udfoldet til indlejrede objekter, gør det som efterbehandlingstrin.

Hvorfor er alle værdier strenge, selv hvis de ligner tal eller booleans?

Fordi query strings ikke bærer typeinformation. ?count=5 og ?count=true er bare tekst. At auto-konvertere til tal eller booleans får et happy-path-eksempel til at se pænt ud, men giver tavse fejl i samme øjeblik en kundes navn er "1", eller nogen skriver ?id=007. Outputtet forbliver streng; konverter i din egen kode, hvor du kender skemaet.

Hvordan klarer den Unicode og emoji?

Pænt. URLSearchParams procentafkoder byten og fortolker dem derefter som UTF-8 — så ?name=%E4%B8%AD%E6%96%87 bliver "name": "中文", og emoji som ?reaction=%F0%9F%94%A5 bliver "reaction": "🔥". JSON.stringify escaper derefter det, der skal escapes, efter RFC 8259 §7.

Andre URL- og JSON-værktøjer

At afkode en query string er én operation. Det her passer godt sammen med: