JSON-Objekt in Query-String umwandeln
Bauen Sie das Ende einer Webadresse aus Ihren Werten, ohne sie zu zerbrechen: Ein Name, eine Stadt, ein Ja-Nein-Kennzeichen und eine Punktzahl ergeben 4 Parameter, und Ada Lovelace wird sicher zu Ada%20Lovelace. Sie erhalten das Ergebnis mit und ohne Fragezeichen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Ampersands und Gleichheitszeichen von Hand zusammenzufügen scheitert, sobald ein Wert ein Leerzeichen, ein Ampersand, einen Nicht-ASCII-Buchstaben oder ein reserviertes Zeichen enthält.
Warum Parameter von Hand zusammengesetzt zerbrechen
Der Teil einer Webadresse nach dem Fragezeichen ist eine Folge von Paaren aus Name, Gleichheitszeichen und Wert, verbunden durch kaufmännische Und. Von Hand zusammengesetzt funktioniert das, bis ein Wert ein Leerzeichen, ein kaufmännisches Und, einen Umlaut oder ein reserviertes Zeichen enthält; dann bricht die Adresse an der falschen Stelle, oder der Server liest etwas anderes. Dieses Werkzeug kodiert jeden Namen und jeden Wert, sodass Ada Lovelace als Ada%20Lovelace ankommt, nach denselben Regeln, die auch der Browser verwendet.
Wofür es sich eignet und wo die Grenzen liegen
Eine Web-Anwendung, die Filter und Seitenzahl als einfache Sammlung von Werten hält, braucht vor dem Schreiben in die Adresszeile genau einen Kodierer. Ein Dienst, der ausgehende Anfragen protokolliert oder signierte Links baut, braucht dieselben Regeln, damit Protokolle zeigen, was wirklich gesendet wurde. Nur flache Sammlungen werden angenommen: Verschachteltes und Listen werden abgelehnt. Leere Werte werden zu leeren Parametern, Ihre Reihenfolge bleibt erhalten, und Sie erhalten das Ergebnis mit und ohne Fragezeichen.
Wann sich die Umwandlung in Adressparameter lohnt
Front-End-Apps, die Filter-Chips und Paginierung als plain object halten, brauchen einen einzigen Encoder vor dem Schreiben von location.search, damit mehrwertig wirkender Text nie an einem rohen Ampersand zerbricht. Backend-Dienste, die ausgehende Anfragen protokollieren oder signierte URLs aus Konfigurationsmaps bauen, brauchen dieselben Percent-Kodierungsregeln wie der Browser, damit Support-Tickets und Zugriffsprotokolle dem entsprechen, was der Client wirklich gesendet hat. Fehlgeschlagene Validierung wird nicht abgerechnet.
Halten Sie Maps flach und unter den dokumentierten Limits, pinnen Sie den kodierten Query in Tests, und Sie erhalten reproduzierbare Parameter-Strings für Dashboards, LMS-Plugins und Edge-Worker, ohne ein volles URL-Toolkit selbst aufzubauen.
Anwendungsfälle
location.search aus dem App-Zustand bauen
Wandeln Sie ein flaches Filter- oder Formularobjekt in einen percent-kodierten Query-String um, bevor Sie die Adresszeile oder den History-Eintrag des Browsers schreiben.
Häufige Fragen
Welche Werttypen sind erlaubt?
Strings, endliche Zahlen, Booleans und null. Null wird nach dem Gleichheitszeichen zu einem leeren Wert.
Werden Schlüssel und Werte percent-kodiert?
Ja. Schlüssel und Werte werden mit encodeURIComponent kodiert, damit Leerzeichen, Ampersands, Gleichheitszeichen und Nicht-ASCII-Zeichen keine extra Parameter erfinden.
Was passiert mit einem Leerzeichen oder einem kaufmännischen Und in einem Wert?
Es wird kodiert, damit es die Adresse nicht an der falschen Stelle trennt. Ein Leerzeichen wird zu %20, wie in Ada%20Lovelace, und kaufmännische Und, Umlaute und andere reservierte Zeichen werden ebenso kodiert, genau wie der Browser es macht.
Kann ich verschachtelte Daten oder Listen umwandeln?
Nein. Angenommen wird nur eine flache Sammlung von Namen und Werten. Ein verschachtelter Abschnitt oder eine Liste wird mit einer klaren Meldung abgelehnt, damit Sie nie eine Adresse erhalten, die gültig aussieht, aber halb strukturierte Daten trägt.
Was geschieht mit einem leeren Wert?
Ein leerer Wert wird zu einem Parameter mit seinem Namen und nichts nach dem Gleichheitszeichen, der Name wird also trotzdem übertragen. Eine leere Sammlung ergibt ein leeres Ergebnis, praktisch, wenn Sie zeigen wollen, dass keine Parameter gesendet werden.
Bleiben die Parameter in meiner Reihenfolge?
Ja. Sie erscheinen in der Reihenfolge, in der die Namen in Ihren Daten stehen. Im Beispiel behalten name, city, active und score diese Reihenfolge, und das Ergebnis nennt zusätzlich die Anzahl der Parameter.
Verwandte Tools
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/data/json-to-query-params \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"object":{"name":"Ada Lovelace","city":"London","active":true,"score":42}}'const res = await fetch("https://api.kit.forhosting.com/data/json-to-query-params", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"object": {
"name": "Ada Lovelace",
"city": "London",
"active": true,
"score": 42
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/json-to-query-params",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"object": {
"name": "Ada Lovelace",
"city": "London",
"active": true,
"score": 42
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/json-to-query-params", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"object":{"name":"Ada Lovelace","city":"London","active":true,"score":42}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"object":{"name":"Ada Lovelace","city":"London","active":true,"score":42}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/json-to-query-params", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"object": {
"name": "Ada Lovelace",
"city": "London",
"active": true,
"score": 42
}
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.json_to_query_params",
"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.
Limits
max_mb | 25 |
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. |
Technische Hinweise
APIs, Front-End-Router und Analyse-Pipelines speichern Filter und Formularfelder oft als einfache JSON-Map und brauchen dennoch einen korrekt kodierten Query-String für die Adresszeile oder einen ausgehenden HTTP-Client. Diese Fähigkeit akzeptiert ein flaches JSON-Objekt, wandelt jeden skalaren Wert in Text um, percent-kodiert jeden Schlüssel und Wert und liefert den anhängbereiten Query-String zusammen mit geordneten Paaren und einer normalisierten String-Map. Verschachtelte Objekte und Arrays werden mit invalid_input abgelehnt, damit Aufrufer keinen halbstrukturierten Müll emittieren, der wie eine gültige URL aussieht.
Vom flachen Objekt zum kodierten Query-String
Ein URL-Query-String ist eine Folge von Name-gleich-Wert-Feldern, verbunden durch Ampersands, optional mit einem Fragezeichen nach dem Pfad. Verschachtelte Objekte und Arrays sind absichtlich nicht unterstützt: ein Query-Parameter ist ein flaches Schlüssel-Wert-Paar, und das Serialisieren verschachtelter Struktur in einen einzigen opaken String würde Fehler verbergen, die Aufrufer meist beheben wollen, bevor die Anfrage den Client verlässt. Leere Objekte erzeugen einen leeren Query-String und die Form nur mit Fragezeichen-Präfix, nützlich für Tests, die keine Parameter behaupten statt einen Dummy-Schlüssel zu erfinden. Längenlimits für Schlüsselanzahl und serialisierte Gesamtgröße halten pathologische Maps davon ab, im kostenlosen Browser-Pfad Speicher zu erschöpfen. Wenn Ihre Quelle der Wahrheit bereits ein JSON-Objekt ist —zum Beispiel ein Filterzustand, ein Formularmodell oder eine Konfigurationsmap— brauchen Sie einen deterministischen Weg, diese Map in das Drahtformat zu überführen, das Browser und Server erwarten. Diese Fähigkeit läuft die eigenen Schlüssel des Objekts in Einfügereihenfolge ab, wandelt jeden skalaren Wert in einen stabilen String um (Booleans werden true oder false, endliche Zahlen nutzen gewöhnliche Dezimalnotation, null wird ein leerer Wert) und wendet encodeURIComponent auf jeden Schlüssel und jeden Wert an, sodass Leerzeichen zu percent-twenty, Ampersands zu percent-twenty-six werden und Unicode den Transit übersteht. Das Ergebnis ist ein Query-String, ohne aus rohen Sonderzeichen zusätzliche Trenner zu erfinden. Weil der Pfad reine String- und Objektarbeit ohne Netzwerk, ohne Zufalls-Seeds und ohne Wanduhr ist, erzeugen identische Eingaben stets identisches JSON. Der API-Preis bei Erfolg ist die veröffentlichte Basis von $0.002 pro Element, und Validierungsfehler belasten den vorausbezahlten KIT-Saldo nicht.
Eingabevertrag, Antwortform und Fehlerverhalten
Der Wert muss ein flaches Objekt sein, dessen Eigenschaften Strings, Zahlen, Booleans oder null sind. Nicht-endliche Zahlen (NaN und Infinity) werden abgelehnt, weil sie in Query-Strings keine standardisierte portable Form haben. Beispiel: name Ada Lovelace, city London, active true und score zweiundvierzig erzeugen einen Vier-Parameter-String mit percent-kodierten Leerzeichen und reservierten Zeichen. Senden Sie per POST einen JSON-Body mit dem Pflichtfeld object (Aliase json, data, params, map, fields). Sie können object auch als JSON-Text übergeben, der zu einer solchen Map parst. Arrays auf der obersten Ebene, null, Skalare und jeder verschachtelte Objekt- oder Array-Wert scheitern mit invalid_input und einer klaren englischen Meldung, die bei Bedarf den fehlerhaften Schlüssel nennt. Bei Erfolg enthält die Antwort query (den kodierten String ohne führendes Fragezeichen), query_with_prefix (denselben mit führendem Fragezeichen, oder nur das Fragezeichen wenn keine Schlüssel), count (die Parameteranzahl), pairs (ein geordnetes Array aus key- und value-Strings nach skalarer Koercion und vor der Kodierung) sowie object (eine last-wins-String-Map dieser koerzierten Werte). Klassischer Fehler: verschachtelte Filter unter einem Schlüssel filter gleich einem Objekt senden und invalid_input statt einer still kaputten URL erhalten. Der API-Preis bei Erfolg ist die veröffentlichte Basis von $0.002 pro Element; Validierungsfehler werden nicht berechnet.
Wo JSON-zu-Query-Umwandlung sich rechnet
Curriculum-Autoren für Web-Grundlagen wollen eine eigene Landing für Objekt-zu-Query-Serialisierung, statt das Thema unter einem bidirektionalen Parser zu vergraben, weil die Suchintention anders ist: wer eine JSON-Map hält, will Kodierung, keine Parse-Modus-Optionen. Weil die Implementierung reines Parse-Tier A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netzwerk.
Integrationsbeispiele
Ausgehende HTTP-Query-Parameter vorbereiten
Serialisieren Sie Konfigurations- und Anfrage-Maps in ein sicheres Query-Fragment für Clients, Webhooks und Builder signierter URLs.
Goldene Fixtures für Kodierungstests
Erzeugen Sie stabile Query-Strings aus JSON-Fixtures in der CI, damit Leerzeichen, Ampersands und Unicode bei jedem Lauf gleich kodiert werden.
Technische Fragen
Wie wandle ich ein JSON-Objekt in einen URL-Query-String um?
Senden Sie ein flaches Objekt im Feld object (oder Aliase json, data, params). Das Antwortfeld query enthält die percent-kodierten key=value-Paare, verbunden mit &; query_with_prefix setzt ein führendes ?.
Was, wenn mein Objekt verschachtelt ist?
Die Fähigkeit verlangt ein flaches Objekt. Verschachtelte Struktur scheitert mit invalid_input, damit Sie die Map vor dem Kodieren abflachen oder umgestalten können, statt eine mehrdeutige URL zu versenden.
Was kostet die Umwandlung von JSON-Objekt zu Query-String?
Das Browser-Tool ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.