JSON-config

URL

Hva gjør JSON til URL?

Du har et JSON-objekt som beskriver delene av et HTTP-endepunkt — protocol, host, sti, query-parametre, hash — og du trenger det som én URL-streng som fetch(), curl eller HTTP-klienten din kan svelge. Lim inn JSON til venstre, få den sammensatte og prosentkodede URL-en til høyre. Samme retning som hver backend-test-fixture, hvert OpenAPI-eksempel og hver config-fil før eller siden ender med å lage.

Verktøyet bruker nettleserens innebygde URL-konstruktor og URLSearchParams til å sette sammen URL-en, så kodingen blir akkurat det WHATWG URL Standard definerer og akkurat det en ekte nettleser ville sendt. Mellomrom i query blir +, hakeparenteser blir %5B/%5D, aksenter og emojier blir UTF-8-prosentkodet. Gjentatte query-nøkler støttes via en array — "tag": ["red", "blue"] gir tag=red&tag=blue.

Denne siden finnes fordi de fleste prosjekter allerede lagrer URL-er som JSON et eller annet sted — environment-filer, Postman-collections, Cypress-fixtures, OpenAPI-specer, Helm-values. Når du trenger den JSON-en som en faktisk URL-streng til et skript eller en engangs-curl, er det i håndsammensyingen buggene gjemmer seg. Konverteringen følger RFC 3986 for URL-syntaks og tar imot standard JSON i henhold til RFC 8259 som input. Alt kjører lokalt — verken JSON eller URL forlater nettleseren din. Motsatt retning bor på URL til JSON.

Slik konverterer du JSON til en URL

Tre steg. Hvert steg svarer til en knapp på siden.

1

Lim inn en JSON-config eller last inn eksemplet

Slipp et JSON-objekt som beskriver URL-delene til venstre. protocol og host er de eneste påkrevde feltene; alt annet er valgfritt. Klikk Eksempel for å laste inn et realistisk e-handels-endepunkt 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 felt: port, username, password, pathname, searchParams, hash. Inni searchParams er en streng en enkelt verdi; en array er gjentatte nøkler. JSON-syntaksen parses med JSON.parse — ingen kommentarer, ingen avsluttende kommaer.

2

Les den sammensatte URL-en

Det høyre panelet oppdaterer seg mens du skriver. Du ser hele URL-en — https://api.shop.example.com/v1/orders?customer=Ava+Chen&status=active&total%5Bgte%5D=49.99&page=2#summary — med hver del prosentkodet sånn URL-standarden definerer. Slipp den rett inn i et fetch()-kall, en curl-kommando, en Postman-test eller en config-fil som forventer én enkelt URL-streng.

3

Kopier eller last ned

Klikk Kopier for å sende URL-en til utklippstavlen, eller Last ned for å lagre den som en tekstfil. Bruk Tøm i input-panelet for å starte på nytt med en ny config.

Når du faktisk bruker dette

Gjøre OpenAPI-eksempler om til kjørbare curl-kommandoer

OpenAPI-specer beskriver servere som {url, variables} og operasjoner som stier med parameters. Å sette sammen den faktiske URL-en fra de bitene for hånd til en engangs-curl er pirkete — substituere path-variabler, kode query-parametre, treffe avsluttende skråstrek. Slipp den allerede fletta JSON-en inn her, kopier URL-en ut, lim inn i curl. Den fletta formen passer med det OpenAPI-server-objektet beskriver.

Bygge URL-er fra oppdelte environment-variabler

En 12-factor-app lagrer URL-deler som separate env-variabler: API_HOST, API_PORT, API_BASE_PATH, API_TOKEN_PARAM. For å produsere full URL til en sanity-check-curl midt i en incident-respons, setter du dem sammen. Lim inn JSON-formen i denne siden, få URL-en, kjør den. Raskere enn å skripte i bash og uten risiko for å glemme å kode et token som inneholder +.

Cypress- og Playwright-fixtures som lagrer URL-er som objekter

Test-fixtures lagrer ofte forespørsels-URL-er i strukturert form, slik at enkeltdeler (orderId-path-paramen, page-query-paramen) kan asserts på. Når fixturen også må gjøre et ekte HTTP-kall (f.eks. for å seede data via cy.request eller page.goto), må den strukturerte formen bli en streng. JSON til URL gjør Marco Riveras lagrede fixture-objekt om til URL-en test-harnessen kan treffe.

Webhook-URL-er satt sammen fra tenant-spesifikke configer

Multi-tenant-systemer lagrer webhook-configer per kunde: {host: "hooks.tenant-a.example.com", pathname: "/orders/ORD-1001/notify", searchParams: {token: "..."}}. Dispatcheren leser JSON og trenger en URL-streng å POSTe til. Samme konvertering som denne siden gjør, bare i runtime. Bruk siden til å verifisere at URL-en koden din kommer til å produsere matcher det kunden registrerte.

Vanlige spørsmål

Hva er forskjellen på dette og URL Builder-siden?

Samme motor, annen innramming. URL Builder er for tilfellet der du setter deg ned og bygger en URL fra bunnen — du komponerer en request. JSON til URL er for tilfellet der JSON-en allerede finnes et sted (en config, en OpenAPI-spec, en fixture, en env-var-oppdeling) og du må konvertere den til URL-strengen et stykke kode forventer. Velg innrammingen som matcher det du gjør — outputen er identisk.

JSON-en min lagrer URL-en annerledes — kan jeg bruke hvilken som helst form?

Den må ha WHATWG URL-delnavnene: protocol, host, port, username, password, pathname, searchParams (objekt), hash. Hvis JSON-en din bruker andre nøkler (scheme, baseUrl, query, fragment), må du gi dem nye navn først. Formen speiler det new URL(...) eksponerer og det URL-specen definerer, så du legger deg på samme modell som fetch og Node bruker internt.

Hvordan sender jeg den samme query-parameteren to ganger (f.eks. ?tag=red&tag=blue)?

Bruk en array som verdi: "tag": ["red", "blue"]. Konvertereren gir tag=red&tag=blue i rekkefølgen du oppga. Det matcher hvordan URLSearchParams håndterer gjentatte nøkler og er det de fleste servere (Express, Rails, ASP.NET) forventer for array-formede query-parametre.

Hvorfor blir mellomrommet mitt + i stedet for %20?

Mellomrom i query-komponenten kodes som + etter reglene for application/x-www-form-urlencoded — det er hva URLSearchParams gir. Mellomrom i stien kodes som %20. Begge er gyldige etter RFC 3986, og alle servere dekoder begge formene. Hvis serveren din bare godtar %20 i query, sitter buggen på serveren.

Kan jeg ha credentials (brukernavn/passord) i URL-en?

Ja — sett "username" og "password" i JSON-en. De dukker opp før hosten som user:pass@host. RFC 3986 §3.2.1 advarer mot det i produksjons-URL-er fordi de havner i nettleserhistorikk, serverlogger og proxy-cacher — greit for en rask lokal test, ikke greit i delte configer.

Forlater URL-en noen gang nettleseren min?

Nei. JSON-parsingen er JSON.parse i fanen din; URL-bygginga er new URL(...) i fanen din; ingen av dem ringer en server. Ingen opplasting, ingen logging. Du kan åpne siden én gang med internett, koble fra og fortsette å bruke den fra cachen.

Andre URL- og JSON-verktøy

JSON til URL er den ene halvdelen av tur-retur. Her er resten av kassa: