Query-String in JSON umwandeln
Ein Query-String ist leicht zu erkennen, wird aber bei codierten Zeichen, leeren Werten, wiederholten Filtern und anwendungsspezifischen Schaltern schnell unübersichtlich.
Im Browser ausführen – kostenlos
Dieser Konverter wandelt das kompakte Transportformat in ein strukturiertes JSON-Objekt um, das Sie lesen, kopieren, vergleichen oder in einen Debugging-Ablauf übernehmen können. Er decodiert Prozentsequenzen als UTF-8, deutet Pluszeichen als Leerzeichen, erhält leere Werte und stellt mehrfach vorkommende Parameternamen in ihrer ursprünglichen Reihenfolge als Listen dar. Die deterministische Umwandlung eignet sich für die Analyse von Anfragen, Testdaten, Protokollen und Entwicklerwerkzeugen.
Machen Sie kompakte Anfrageparameter übersichtlich
Query-Strings sind für den Datentransport ausgelegt, nicht für bequemes Lesen. Ein Browser oder Client kann einen Suchbegriff, mehrere ausgewählte Schlagwörter, ein leeres optionales Feld und einen Ort mit internationalen Zeichen in einer einzigen kompakten Zeile senden. Fügen Sie den Teil nach dem URL-Pfad mit oder ohne führendes Fragezeichen in den Konverter ein. Das Ergebnis trennt jeden Parameter in eine eigene JSON-Eigenschaft. Ein Parameter ohne Gleichheitszeichen bleibt mit einer leeren Zeichenfolge erhalten, ebenso ein Parameter, auf dessen Gleichheitszeichen ausdrücklich kein Inhalt folgt. Leere Abschnitte zwischen kaufmännischen Und-Zeichen werden ignoriert, weil sie keinen Parameter enthalten. So können Sie die Ausgabe mit dem Anwendungszustand vergleichen: Werte sind sichtbar, Leerwerte gehen nicht verloren und Zähler nennen sowohl unterschiedliche Schlüssel als auch sämtliche verarbeiteten Paare. Der Parser kontaktiert keinen Zielserver und leitet keine fachlichen Typen ab. Werte wie true, 42 und null bleiben Zeichenfolgen. Durch dieses vorhersehbare Verhalten bildet das JSON genau ab, was die Anfrage tatsächlich übertragen hat.
Verstehen Sie Decodierung und wiederholte Schlüssel
Jeder Schlüssel und jeder Wert wird getrennt nach den üblichen Regeln für Webformulare decodiert. Ein Pluszeichen wird zum Leerzeichen; Prozentsequenzen wie %20 und mehrbyteige UTF-8-Folgen werden in die vorgesehenen Zeichen verwandelt. Das Gleichheitszeichen hat nur bei seinem ersten Auftreten innerhalb eines Paares eine besondere Funktion. Ein Wert darf daher weitere Gleichheitszeichen enthalten, ohne erneut geteilt zu werden. Wiederholte Schlüssel bleiben erhalten und werden nicht überschrieben: Das erste Vorkommen beginnt als Zeichenfolge, das zweite macht die Eigenschaft zu einer Liste und weitere Werte werden in Empfangsreihenfolge angefügt. tag=sale&tag=new ergibt beispielsweise eine tag-Liste mit sale vor new. Das hilft bei Filtern, Kontrollkästchengruppen und Frameworks, die mehrere Auswahlen unter einem Feldnamen serialisieren. Ungültige Prozentsequenzen führen zu einem Eingabefehler statt zu einem Teilergebnis; codierte Bytes ohne gültiges UTF-8 werden ebenfalls abgelehnt. Diese strenge Behandlung verhindert, dass ein scheinbar plausibles Ergebnis eine fehlerhafte Anfrage verdeckt. pair_count zählt Wiederholungen mit, key_count dagegen die unterschiedlichen decodierten Namen.
Nutzen Sie das Ergebnis für Tests, Protokolle und Diagnosen
Das konvertierte Objekt hilft überall dort, wo Sie eine Anfrage verstehen müssen, bevor Programmcode damit arbeitet. Fügen Sie bei der API-Entwicklung den Query-String einer fehlgeschlagenen Anfrage ein und vergleichen Sie das decodierte JSON mit den erwarteten Routenparametern. Wandeln Sie in automatisierten Tests repräsentative Strings in stabile Daten um und prüfen Sie, ob wiederholte Filter, internationaler Text, Pluszeichen und leere Felder in der vorgesehenen Form ankommen. In Protokollen lässt sich die strukturierte Darstellung leichter lesen und vergleichen als eine lange codierte Zeile, besonders wenn ein Schlüssel mehrfach vorkommt. Der Konverter nimmt bewusst keine Schemaumwandlung vor. Erwartet Ihre Anwendung eine Zahl, einen booleschen Wert, ein Datum oder eine verschachtelte Klammerkonvention, wenden Sie anschließend deren eigene Validierung an. So erfindet ein allgemeines Prüfwerkzeug keine Bedeutung, die der Absender nie festgelegt hat. Eigenschaftsnamen werden auch dann sicher als Daten behandelt, wenn sie internen JavaScript-Bezeichnungen ähneln. Nutzen Sie die Browserversion für schnelle Prüfungen oder die API für $0.002, wenn Pipelines, Testsysteme oder Observability-Abläufe dieselbe deterministische Umwandlung wiederholt benötigen.
Anwendungsfälle
API-Anfrage untersuchen
Decodieren Sie die genaue Client-Anfrage und vergleichen Sie Schlüssel, Leerwerte und wiederholte Filter mit dem Routenvertrag.
Stabile Testdaten erstellen
Wandeln Sie repräsentative Query-Strings in deterministische JSON-Ergebnisse für Integrations- und Regressionstests um.
Codierte Protokolldaten prüfen
Machen Sie codierte Parameter lesbar, bevor Sie Suchvorgänge, Weiterleitungen oder Tracking-Integrationen untersuchen.
Häufige Fragen
Was kostet der Konverter?
Das Browserwerkzeug ist kostenlos. API-Anfragen verwenden den veröffentlichten Grundpreis von $0.002.
Darf ich das führende Fragezeichen angeben?
Ja. Die Eingabe darf mit einem Fragezeichen beginnen oder nur die darauf folgenden Zeichen enthalten.
Wie werden wiederholte Parameternamen dargestellt?
Ein einmaliger Schlüssel hat einen Stringwert. Bei Wiederholung bilden seine Werte eine Liste in ursprünglicher Reihenfolge.
Werden Pluszeichen und Prozentcodierung decodiert?
Ja. Pluszeichen werden zu Leerzeichen und gültige Prozentbytes in Schlüsseln und Werten als UTF-8 decodiert.
Werden Zahlen und boolesche Werte in JSON-Typen umgewandelt?
Nein. Parameter bleiben Strings, damit der Konverter kein Schema annimmt und die gesendeten Daten nicht verändert.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.query_string_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |