JSON til URL
Konvertér et JSON-objekt, der beskriver URL-dele, til den URL-streng, dit fetch/curl-kald forventer
JSON-config
URL
Hvad gør JSON til URL?
Du har et JSON-objekt, der beskriver delene af et HTTP-endpoint — protocol, host, sti, query-parametre, hash — og du skal bruge det som én URL-streng, som fetch(), curl eller din HTTP-klient kan sluge. Indsæt JSON til venstre, få den samlede og procentkodede URL til højre. Den samme retning, som hver backend-test-fixture, hvert OpenAPI-eksempel og hver config-fil før eller siden ender med at lave.
Værktøjet bruger browserens indbyggede URL-konstruktor og URLSearchParams til at samle URL'en, så kodningen er præcis det, som WHATWG URL Standard definerer, og præcis det en rigtig browser ville sende. Mellemrum i query bliver til +, kantede parenteser bliver til %5B/%5D, accenter og emojis bliver UTF-8-procentkodet. Gentagne query-nøgler understøttes ved at sende et array — "tag": ["red", "blue"] giver tag=red&tag=blue.
Den her side findes, fordi de fleste projekter allerede har URL'er liggende som JSON et eller andet sted — environment-filer, Postman-collections, Cypress-fixtures, OpenAPI-specs, Helm-values. Når du skal bruge den JSON som en rigtig URL-streng til et script eller et engangs-curl, er det i håndsamlingen buggene gemmer sig. Konverteringen følger RFC 3986 for URL-syntaks og accepterer standard-JSON ifølge RFC 8259 som input. Alt kører lokalt — hverken JSON eller URL forlader din browser. Den modsatte retning bor på URL til JSON.
Sådan konverterer du JSON til en URL
Tre trin. Hvert trin svarer til en knap på siden.
Indsæt en JSON-config eller indlæs eksemplet
Drop et JSON-objekt, der beskriver URL-delene, til venstre. protocol og host er de eneste påkrævede felter; resten er valgfrit. Klik på Eksempel for at indlæse et realistisk e-handels-endpoint med flere query-parametre og en hash:
{
"protocol": "https",
"host": "api.shop.example.com",
"pathname": "/v1/orders",
"searchParams": {
"customer": "Ava Chen",
"status": "active",
"total[gte]": "49.99",
"page": "2"
},
"hash": "summary"
}Valgfrie felter: port, username, password, pathname, searchParams, hash. Inde i searchParams er en streng én enkelt værdi; et array er gentagne nøgler. JSON-syntaksen parses med JSON.parse — ingen kommentarer, ingen afsluttende kommaer.
Læs den samlede URL
Det højre panel opdaterer sig, mens du skriver. Du ser den fulde URL — https://api.shop.example.com/v1/orders?customer=Ava+Chen&status=active&total%5Bgte%5D=49.99&page=2#summary — med hver del procentkodet sådan som URL-standarden definerer. Smid den direkte ind i et fetch()-kald, en curl-kommando, en Postman-test eller en config-fil, der forventer én enkelt URL-streng.
Kopiér eller download
Klik på Kopiér for at sende URL'en til udklipsholderen, eller på Download for at gemme den som en tekstfil. Brug Ryd i input-panelet for at starte forfra med en ny config.
Hvornår du faktisk bruger det
Lave OpenAPI-eksempler om til kørbare curl-kommandoer
OpenAPI-specs beskriver servere som {url, variables} og operationer som stier med parameters. At sætte den faktiske URL sammen fra de stykker i hånden til et engangs-curl er pillearbejde — substituering af path-variable, kodning af query-parametre, slå styr på den afsluttende skråstreg. Smid den allerede flettede JSON herind, kopiér URL'en ud, ind i curl. Den flettede form passer med det, som OpenAPI-server-objektet beskriver.
Bygge URL'er fra opdelte environment-variable
En 12-factor-app gemmer URL-dele som adskilte env-variable: API_HOST, API_PORT, API_BASE_PATH, API_TOKEN_PARAM. For at producere den fulde URL til et sanity-check-curl under en incident-håndtering samler du dem. Indsæt JSON-formen i den her side, få URL'en, kør den. Hurtigere end at scripte i bash og uden risiko for at glemme at kode et token, der indeholder +.
Cypress- og Playwright-fixtures, der gemmer URL'er som objekter
Test-fixtures gemmer ofte request-URL'er i struktureret form, så enkelte dele (orderId-path-paramen, page-query-paramen) kan asserts på. Når fixturen også skal lave et rigtigt HTTP-kald (fx for at seede data via cy.request eller page.goto), skal den strukturerede form blive til en streng. JSON til URL gør Marco Riveras gemte fixture-objekt om til den URL, test-harnessen kan ramme.
Webhook-URL'er samlet fra tenant-specifikke configs
Multi-tenant-systemer gemmer webhook-configs pr. kunde: {host: "hooks.tenant-a.example.com", pathname: "/orders/ORD-1001/notify", searchParams: {token: "..."}}. Dispatcheren læser JSON og skal bruge en URL-streng at POSTe til. Samme konvertering som den her side laver, bare i runtime. Brug siden til at verificere, at den URL, din kode vil producere, matcher den, kunden har registreret.
Ofte stillede spørgsmål
Hvad er forskellen på den her og URL Builder-siden?
Samme motor, anden indpakning. URL Builder er til det tilfælde, hvor du sætter dig ned og samler en URL fra bunden — du komponerer en request. JSON til URL er til det tilfælde, hvor JSON allerede findes et eller andet sted (en config, en OpenAPI-spec, en fixture, en env-var-opdeling) og du skal konvertere den til den URL-streng, et stykke kode forventer. Vælg den indpakning, der matcher det du laver — output er identisk.
Min JSON gemmer URL'en anderledes — kan jeg bruge enhver form?
Den skal bruge WHATWG URL-delnavnene: protocol, host, port, username, password, pathname, searchParams (objekt), hash. Hvis din JSON bruger andre nøgler (scheme, baseUrl, query, fragment), så omdøb dem først. Formen spejler det, som new URL(...) eksponerer, og det URL-specen definerer, så du linjer dig op efter samme model, som fetch og Node bruger internt.
Hvordan sender jeg den samme query-parameter to gange (fx ?tag=red&tag=blue)?
Brug et array som værdi: "tag": ["red", "blue"]. Konverteren giver tag=red&tag=blue i den rækkefølge, du har angivet. Det matcher hvordan URLSearchParams håndterer gentagne nøgler og er det, de fleste servere (Express, Rails, ASP.NET) forventer for array-formede query-parametre.
Hvorfor bliver mit mellemrum til + i stedet for %20?
Mellemrum i query-komponenten kodes som + efter reglerne for application/x-www-form-urlencoded — det er hvad URLSearchParams giver. Mellemrum i stien kodes som %20. Begge er gyldige efter RFC 3986, og alle servere afkoder begge former. Hvis din server kun accepterer %20 i query, sidder buggen på serveren.
Kan jeg have credentials (brugernavn/adgangskode) i URL'en?
Ja — sæt "username" og "password" i JSON'en. De dukker op før hosten som user:pass@host. RFC 3986 §3.2.1 advarer mod det i produktions-URL'er, fordi de ender i browserhistorik, serverlogs og proxy-caches — fint til en hurtig lokal test, ikke fint i delte configs.
Forlader URL'en nogensinde min browser?
Nej. JSON-parsningen er JSON.parse i dit faneblad; URL-samlingen er new URL(...) i dit faneblad; ingen af dem ringer til en server. Ingen upload, ingen logning. Du kan åbne siden en gang med internet, koble fra og blive ved med at bruge den fra cachen.
Andre URL- og JSON-værktøjer
JSON til URL er den ene halvdel af tur-retur. Her er resten af værktøjssættet: