Query String til JSON
Dekod en URL-query-string til et JSON-objekt — gjentatte nøkler blir arrays
Query String
JSON
Hva gjør Query String til JSON?
Du limer inn en query string til venstre — med eller uten innledende ? — og høyresiden fylles med et JSON-objekt. Verdier URL-dekodes underveis (så customer=Ava%20Chen blir "customer": "Ava Chen"), og hvis samme nøkkel forekommer mer enn én gang, samles den i et JSON-array. Det siste er nettopp det de fleste hjemmesnekrede string-splittinger får galt, og det er derfor denne siden finnes.
Parsingen bruker den i nettleseren innebygde URLSearchParams — det samme som driver request.query i alle moderne webrammeverk. URLSearchParams følger reglene fra application/x-www-form-urlencoded i WHATWG URL Standard, som er det nettlesere sender når et skjema POST-er. Output serialiseres deretter via JSON.stringify i henhold til RFC 8259.
Alt kjører i nettleseren din. Hvis input er en hel URL, er siden tolerant — den henter ut query-delen for deg. Vil du bare ha selve URL-komponentene (host, path osv.), bruk heller URL til JSON. Vil du bare se på parametrene uten å beholde JSON, passer siden URL Parser bedre. Prosentkodingsreglene som er i spill her, er definert av RFC 3986 §2.1.
Slik konverterer du en Query String til JSON
Tre trinn. Hvert av dem tilsvarer en knapp på denne siden.
Lim inn Query String
Slipp query stringen inn i venstre panel. Det går fint å ha med innledende ? — parseren fjerner det. Klikk Eksempel for å laste en realistisk e-handels-filter-URL med prosentkodede verdier, klammenotasjon og en gjentatt tag-nøkkel. Eksempel:
?customer=Ava%20Chen&status=active&total%5Bgte%5D=49.99&page=2&tag=premium&tag=verifiedDu kan også lime inn en hel URL som <code>https://shop.example.com/orders?...</code> — siden henter ut query-delen for deg.
Les JSON-objektet
Høyre panel oppdaterer mens du skriver. Hver parameter er en nøkkel, hver verdi er dekodet, og gjentatte nøkler blir arrays. Eksemplet over gir altså "customer": "Ava Chen", "total[gte]": "49.99" og "tag": ["premium", "verified"]. Tall forblir strenger — query strings bærer ingen typeinformasjon, så å late som ville bare skjule feil.
Kopier, last ned eller minimer
Klikk Kopier for å sende JSON til utklippstavlen, Last ned for å lagre som querystring.json, eller Minimer for å presse det ned på én linje. Tøm nullstiller inputpanelet.
Når du faktisk ville bruke dette
Debugge request-logger
Serverlogger dumper hele request-linjen, query string og det hele. Når du jakter på hvorfor en kundes søk ikke ga noe, er det raskere å kopiere ?customer=Marco%20Rivera&status=cancelled&date_from=2026-04-01&date_to=2026-04-30 fra loggen til denne siden enn å URL-dekode hver verdi i hodet. JSON gjør de faktiske filterverdiene åpenbare.
Generere test-fixtures fra reell trafikk
Du skriver tester mot et endepunkt som tar 12 query-parametere. Hent en ekte URL fra produksjon, lim inn query stringen her, og bruk JSON som parameterobjekt i testen din. Ekte navn, ekte former, ekte feil fanget — bedre enn å finne på customer: "ORD-1001" ut av hodet.
Migrere mellom query string-konvensjoner
Ulike stacker koder arrays forskjellig — ?tag=red&tag=blue, ?tag[]=red&tag[]=blue, ?tag=red,blue. Å konvertere til JSON først gir deg en nøytral mellomform. Derfra er transformasjonen til målkonvensjonen et 5-linjers skript i stedet for regex-arkeologi.
OAuth, webhooks og analytics-callbacks
OAuth-callbacks kommer tilbake som ?code=abc&state=xyz. Webhook-URL-er fra tjenester som Stripe eller GitHub propper metadata inn i query stringen. Analytics-redirects stabler et dusin UTM- og tracking-parametere oppå. Ved å lime inn bare query-delen her kommer du rett til parameterobjektet uten å måtte skrelle av hosten først.
Vanlige spørsmål
Må jeg ha med innledende spørsmålstegn?
Nei — lim inn med eller uten. Parseren fjerner det innledende ? hvis den ser ett. Du kan til og med lime inn en hel URL (https://api.shop.example.com/orders?customer=Ava%20Chen) — siden henter ut query-delen for deg.
Hvordan håndteres gjentatte nøkler?
De samles i et JSON-array. Så ?tag=premium&tag=verified blir "tag": ["premium", "verified"]. Det matcher oppførselen til URLSearchParams.getAll() og hvordan Express, FastAPI, ASP.NET og Spring parser query strings.
Hva med verdiløse nøkler som ?debug eller ?dry-run?
De blir tomme strenger — "debug": "". URLSearchParams behandler en nøkkel uten = som key= ifølge WHATWG URL Standard. Trenger du en ekte boolean, etterbehandle JSON med noe som obj.debug = "debug" in obj.
Hva med klammenotasjon som ?items[]=1&items[]=2?
Klammene beholdes som del av nøkkelen — du ser "items[]": ["1", "2"] i output. Det er ærlig overfor byten på linja. Trenger rammeverket ditt (PHP, Rails, qs.js) at klammene fjernes eller utvides til nøstede objekter, gjør det som etterbehandlingstrinn.
Hvorfor er alle verdier strenger, selv om de ser ut som tall eller booleans?
Fordi query strings ikke bærer typeinformasjon. ?count=5 og ?count=true er bare tekst. Å auto-konvertere til tall eller booleans får et happy-path-eksempel til å se ryddig ut, men gir tause feil i samme øyeblikk en kundes navn er "1", eller noen skriver ?id=007. Output forblir streng; konverter i din egen kode der du kjenner skjemaet.
Hvordan håndterer den Unicode og emoji?
Pent. URLSearchParams prosentdekoder byten og tolker dem deretter som UTF-8 — så ?name=%E4%B8%AD%E6%96%87 blir "name": "中文", og emoji som ?reaction=%F0%9F%94%A5 blir "reaction": "🔥". JSON.stringify escaper deretter det som må escapes ifølge RFC 8259 §7.
Andre URL- og JSON-verktøy
Å dekode en query string er én operasjon. Her er hva som passer godt sammen med det: