Convertisseur de query string en JSON
Collez la partie requête d'une adresse web et lisez chaque clé avec sa valeur décodée : tag=sale&tag=new devient une liste tag contenant sale et new, et les codes pour cent redeviennent São Paulo. Les valeurs vides restent visibles. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Une chaîne de requête est facile à reconnaître, mais devient difficile à examiner dès qu’elle contient des caractères encodés, des valeurs vides, des filtres répétés et des indicateurs propres à une application. Il décode les séquences pour cent en UTF-8, interprète les signes plus comme des espaces, conserve les valeurs vides et représente les paramètres répétés sous forme de listes dans leur ordre d’origine. Cette transformation déterministe convient à l’analyse des requêtes, aux jeux de test, aux journaux et aux outils de développement.
Transformez des paramètres compacts en objet facile à examiner
Les chaînes de requête sont conçues pour transporter des données, pas pour être agréables à lire. Un navigateur ou un client peut envoyer sur une seule ligne compacte un terme de recherche, plusieurs étiquettes sélectionnées, un champ facultatif vide et un lieu contenant des caractères internationaux. Un paramètre écrit sans signe égal est conservé avec une chaîne vide, tout comme un paramètre explicitement suivi d’un signe égal sans contenu.
Les segments vides entre deux esperluettes sont ignorés, car ils ne contiennent aucun paramètre. Vous pouvez ainsi comparer la sortie à l’état de l’application : les valeurs sont visibles, les blancs ne disparaissent pas et les compteurs indiquent à la fois les clés distinctes et le nombre total de paires traitées. L’analyseur ne contacte pas le serveur cible et ne déduit aucun type métier ; true, 42 et null restent donc des chaînes.
Comprenez le décodage et la gestion des clés répétées
Chaque clé et chaque valeur sont décodées séparément selon les règles habituelles des formulaires web. Un signe plus devient une espace, tandis que les séquences pour cent comme %20 et les séquences UTF-8 multioctets retrouvent les caractères prévus. Le signe égal n’est spécial que lors de sa première occurrence dans une paire : une valeur peut donc contenir d’autres signes égaux sans être à nouveau divisée.
Les clés répétées sont conservées au lieu d’être remplacées. La première occurrence produit une chaîne, la deuxième transforme la propriété en liste et les suivantes sont ajoutées dans l’ordre reçu. Ainsi, tag=sale&tag=new crée une liste tag contenant sale puis new.
Ce fonctionnement est utile pour les filtres, groupes de cases à cocher et frameworks qui sérialisent plusieurs choix sous un même nom. Une séquence pour cent incorrecte provoque une erreur de saisie plutôt qu’un décodage partiel ; les octets encodés qui ne forment pas un UTF-8 valide sont également refusés.
Exploitez le résultat dans les tests, journaux et diagnostics
L’objet converti est utile chaque fois que vous devez comprendre une requête avant que le code ne l’exploite. Dans des tests automatisés, convertissez des chaînes représentatives en données stables et vérifiez que les filtres répétés, textes internationaux, signes plus et champs vides prennent la forme prévue. Pour examiner des journaux, la structure est plus simple à parcourir et à comparer qu’une longue ligne encodée, surtout lorsqu’une clé apparaît plusieurs fois.
Le convertisseur évite volontairement toute conversion de type : si votre application attend un nombre, un booléen, une date ou une convention imbriquée avec crochets, appliquez ensuite sa propre validation. Cette frontière empêche un outil générique d’inventer un sens non déclaré par l’émetteur. Les noms de propriétés sont traités en toute sécurité comme des données, même s’ils ressemblent à des éléments internes de JavaScript.
Cas d’usage
Examiner des données encodées dans les journaux
Rendez les paramètres encodés lisibles avant d’analyser une recherche, une redirection ou une intégration de suivi.
Questions fréquentes
Puis-je inclure le point d’interrogation initial ?
Oui. La saisie peut commencer par un point d’interrogation ou contenir uniquement les caractères qui le suivent.
Comment les paramètres répétés sont-ils représentés ?
Une clé présente une fois reçoit une chaîne. Si elle se répète, ses valeurs forment une liste dans leur ordre d’origine.
Les signes plus et l’encodage pour cent sont-ils décodés ?
Oui. Les signes plus deviennent des espaces et les octets valides sont décodés en UTF-8 dans les clés comme dans les valeurs.
Les nombres et les valeurs true ou false changent-ils de type ?
Non. Chaque valeur reste le texte envoyé, donc 42 ou true s'affichent tels quels. Rien n'est converti par supposition, et le résultat montre fidèlement ce que portait l'adresse.
Que se passe-t-il avec un code pour cent mal formé ?
L'ensemble est refusé au lieu d'être décodé à moitié. Il en va de même pour des octets encodés qui ne forment pas un texte UTF-8 valide, car un résultat partiel mais plausible pourrait masquer le vrai problème.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/query-string-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}'const res = await fetch("https://api.kit.forhosting.com/dev/query-string-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/query-string-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/query-string-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/query-string-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.query_string_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Ce convertisseur de chaîne de requête en JSON transforme ce format de transport compact en un objet structuré que vous pouvez lire, copier, comparer ou intégrer à un processus de débogage.
Transformez des paramètres compacts en objet facile à examiner
Collez dans le convertisseur la partie située après le chemin de l’URL, avec ou sans le point d’interrogation initial : le résultat sépare chaque paramètre dans une propriété JSON. Ce comportement prévisible fait du JSON une représentation fidèle du contenu réel de la requête.
Comprenez le décodage et la gestion des clés répétées
Cet échec strict évite qu’un résultat apparemment plausible masque une requête mal formée. pair_count inclut les répétitions, tandis que key_count compte les noms décodés distincts.
Exploitez le résultat dans les tests, journaux et diagnostics
Pendant le développement d’une API, collez la chaîne d’une requête en échec et comparez le JSON décodé aux paramètres attendus par la route. Utilisez la version navigateur pour une vérification rapide ou appelez l’API pour $0.002 lorsqu’un pipeline, un banc de test ou un flux d’observabilité doit répéter cette conversion déterministe.
Cas d'intégration
Déboguer une requête API
Décodez la requête exacte envoyée par un client et comparez ses clés, valeurs vides et filtres répétés au contrat de la route.
Créer des jeux de test stables
Transformez des chaînes représentatives en résultats JSON déterministes pour vos tests d’intégration et de régression.
Questions techniques
Quel est le prix du convertisseur ?
L’outil dans le navigateur est gratuit. Les requêtes API utilisent le tarif de base publié de $0.002.
Les nombres et booléens deviennent-ils des types JSON ?
Non. Les paramètres restent des chaînes afin que le convertisseur ne suppose aucun schéma et ne modifie pas les données émises.