100 % local — vos données ne quittent jamais votre navigateur

JSON en query string — prêt pour l’URL

Convertissez un objet JSON plat en query string d’URL. Le pourcentage-encodage est fait, les tableaux deviennent des clés répétées : collez après le « ? ».

Instantané Privé Zéro cookie

Entrée JSON

Sortie Query String

Ce que fait cet outil

Un objet JSON plat devient la partie d’URL qui suit le ?.

{ "q": "café au lait", "page": 2 }
q=caf%C3%A9+au+lait&page=2

Le ? lui-même n’est pas inclus : vous collez généralement ceci derrière un ? que vous avez déjà.

Les tableaux deviennent des clés répétées

{ "tag": ["news", "draft"] }
tag=news&tag=draft

Aucune norme ne dit comment un tableau se loge dans une query string : tag[]=, tag[0]=, une liste séparée par des virgules et les clés répétées sont toutes en usage quelque part. Les clés répétées sont ce que URLSearchParams et la plupart des cadres serveur relisent sans configuration, et ce que l’outil inverse de ce site rend sous forme de tableau.

L’imbrication arrête la conversion

{ "filter": { "status": "open" } }

est refusé, et le message nomme filter. L’aplatir en filter.status=open ou filter[status]=open reviendrait à inventer une convention ; le destinataire doit y consentir, et rien dans le JSON ne dit laquelle il attend.

Les types ne survivent pas, et le null moins que tout

Tout, dans une query string, est du texte. 2 et "2" partent identiques, true part en quatre lettres, et tous reviennent en chaînes.

null devient une valeur vide :

{ "ref": null }
ref=

qui se relit en "", pas en null. La clé est conservée, sa vacuité aussi, mais la distinction entre rien et texte vide a disparu — une query string n’a aucun moyen de l’écrire. C’est dit ici parce que c’est le genre de perte qu’on découvre autrement en production.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Comment les tableaux sont-ils encodés : crochets ou clés répétées ?
Clés répétées : `{"tag":["a","b"]}` devient `tag=a&tag=b`. Aucune norme ne régit les tableaux dans une query string, le choix se fait donc entre conventions. Celle-ci est ce que `URLSearchParams` relit, et ce que l’outil inverse de ce site retransforme en tableau : la paire est symétrique.
Pourquoi mon espace est-il un `+` plutôt qu’un `%20` ?
Parce que la sortie suit l’encodage de formulaire, où `+` vaut espace. Un décodeur de formulaire lit les deux à l’identique. Un consommateur qui ne fait que décoder les pourcents, non : il voit un plus littéral. Si la chaîne part vers un tel destinataire, remplacez `+` par `%20` avant l’envoi.
Puis-je récupérer mes types ensuite ?
Non. Une query string ne transporte que du texte : `2`, `true` et `"2"` partent en mêmes caractères et reviennent en chaînes. Le null est pire : il devient une valeur vide, indiscernable d’une chaîne vide. Cette page dit où se produit cette perte plutôt que de la taire.

Convertisseurs associés