Convertisseur de query string en JSON
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.
Lancer gratuitement
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. 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. 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. 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. 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
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. 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
L’objet converti est utile chaque fois que vous devez comprendre une requête avant que le code ne l’exploite. 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. 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. 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’usage
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.
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
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.
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 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.
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. |