Query String

JSON

Cosa fa Query String a JSON?

Incolli una query string a sinistra — con o senza il ? iniziale — e a destra si riempie un oggetto JSON. I valori vengono decodificati per strada (quindi customer=Ava%20Chen diventa "customer": "Ava Chen"), e se la stessa chiave compare più volte si raccoglie in un array JSON. Quest'ultimo punto è quello che la maggior parte dei split improvvisati sbaglia, ed è il motivo per cui questa pagina esiste.

Il parsing usa URLSearchParams integrato nel browser — la stessa cosa che alimenta request.query in qualsiasi framework web moderno. URLSearchParams segue le regole application/x-www-form-urlencoded dello standard URL del WHATWG, esattamente quello che i browser inviano quando un form fa POST. L'output viene poi serializzato tramite JSON.stringify secondo la RFC 8259.

Tutto gira nel tuo browser. Se il tuo input è una URL completa, la pagina è permissiva — estrae la parte di query per te. Se vuoi solo i componenti dell'URL stessa (host, path, ecc.), usa URL a JSON. Se vuoi solo guardare i parametri senza tenere il JSON, la pagina URL Parser è più adatta. Le regole di percent-encoding in gioco qui sono definite dalla RFC 3986 §2.1.

Come convertire una Query String in JSON

Tre passi. Ognuno corrisponde a un pulsante su questa pagina.

1

Incolla la Query String

Butta la query string nel pannello di sinistra. Includere il ? iniziale va bene — il parser lo toglie. Clicca Esempio per caricare una URL realistica di filtro e-commerce con valori percent-encoded, notazione con parentesi quadre e una chiave tag ripetuta. Esempio:

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

Puoi anche incollare una URL completa come <code>https://shop.example.com/orders?...</code> e la pagina estrarrà la parte di query.

2

Leggi l'oggetto JSON

Il pannello destro si aggiorna mentre digiti. Ogni parametro è una chiave, ogni valore è decodificato e le chiavi ripetute diventano array. Quindi l'esempio sopra produce "customer": "Ava Chen", "total[gte]": "49.99" e "tag": ["premium", "verified"]. I numeri restano stringhe — le query string non hanno informazioni di tipo, quindi fingere ne avrebbe solo nascosto bug.

3

Copia, scarica o minifica

Clicca Copia per mandare il JSON negli appunti, Scarica per salvarlo come querystring.json, o Minifica per compattarlo su una riga. Pulisci resetta il pannello di input.

Quando lo useresti davvero

Debug dei log delle richieste

I log del server sputano la riga di richiesta intera, query string compresa. Quando stai dando la caccia al perché la ricerca di un cliente non ha restituito niente, copiare ?customer=Marco%20Rivera&status=cancelled&date_from=2026-04-01&date_to=2026-04-30 dal log a questa pagina è più rapido che decodificare mentalmente ogni valore. Il JSON rende ovvi i veri valori dei filtri.

Generare fixture di test dal traffico reale

Stai scrivendo test contro un endpoint che prende 12 parametri di query. Prendi una URL vera da produzione, incolla la query string qui e usa il JSON come oggetto parametri nel tuo test. Nomi veri, forme vere, bug veri presi — molto meglio che inventarsi customer: "ORD-1001" a memoria.

Migrare tra convenzioni di query string

Stack diversi codificano gli array in modo diverso — ?tag=red&tag=blue, ?tag[]=red&tag[]=blue, ?tag=red,blue. Convertire prima in JSON ti dà una forma intermedia neutra. Da lì, trasformare verso la convenzione di destinazione è uno script da 5 righe invece di archeologia con regex.

OAuth, webhook e callback di analytics

I callback OAuth tornano come ?code=abc&state=xyz. Le URL di webhook di servizi come Stripe o GitHub infilano metadata nella query string. I redirect di analytics impilano una dozzina di parametri UTM e di tracking sopra. Incollando solo la parte di query qui ti porta dritto all'oggetto parametri senza dover staccare l'host prima.

Domande frequenti

Devo includere il punto interrogativo iniziale?

No — incolla con o senza. Il parser toglie il ? iniziale se ne vede uno. Puoi anche incollare una URL completa (https://api.shop.example.com/orders?customer=Ava%20Chen) e la pagina estrarrà la parte di query.

Come vengono gestite le chiavi ripetute?

Si raccolgono in un array JSON. Quindi ?tag=premium&tag=verified diventa "tag": ["premium", "verified"]. Questo combacia con il comportamento di URLSearchParams.getAll() e con come Express, FastAPI, ASP.NET e Spring parsano le query string.

E le chiavi senza valore come ?debug o ?dry-run?

Diventano stringhe vuote — "debug": "". URLSearchParams tratta una chiave senza = come key= secondo lo standard URL del WHATWG. Se ti serve un vero booleano, post-elabora il JSON con qualcosa come obj.debug = "debug" in obj.

E la notazione con parentesi quadre come ?items[]=1&items[]=2?

Le parentesi quadre vengono mantenute come parte della chiave — vedrai "items[]": ["1", "2"] nell'output. Questo è onesto rispetto ai byte sul filo. Se il tuo framework (PHP, Rails, qs.js) ha bisogno che le parentesi vengano tolte o espanse in oggetti annidati, fallo come passo di post-elaborazione.

Perché tutti i valori sono stringhe, anche se sembrano numeri o booleani?

Perché le query string non portano informazioni di tipo. ?count=5 e ?count=true sono entrambi solo testo. Auto-coercere a numeri o booleani fa sembrare un esempio happy path tutto ordinato ma causa bug silenziosi nel momento in cui il nome di un cliente è "1" o qualcuno scrive ?id=007. L'output resta stringa; converti nel tuo codice dove conosci lo schema.

Come gestisce Unicode ed emoji?

Pulito. URLSearchParams decodifica i byte percentuali e poi li interpreta come UTF-8 — quindi ?name=%E4%B8%AD%E6%96%87 diventa "name": "中文" ed emoji come ?reaction=%F0%9F%94%A5 diventano "reaction": "🔥". JSON.stringify poi escapa quello che va escapato secondo la RFC 8259 §7.

Altri strumenti URL & JSON

Decodificare una query string è un'operazione. Ecco cosa si abbina bene: