URL

JSON

O que o URL para JSON faz?

Você cola uma URL à esquerda e à direita aparece um objeto JSON com cada parte da URL nomeada — protocol, host, pathname, searchParams, hash, tudo. A ideia não é olhar uma vez e esquecer. A ideia é copiar esse JSON para um lugar onde ele vá morar — um arquivo de config, uma fixture do Jest, um environment do Postman, um manifesto YAML, um mock de requisição para seus testes. URLs em formato string são fáceis de digitar, mas difíceis de validar; objetos estruturados são o oposto.

Por baixo dos panos é o mesmo algoritmo que todo navegador usa pela URL API, que implementa o WHATWG URL Standard. Os parâmetros de consulta são decodificados pelo caminho — %20 vira espaço, %5B vira [, chaves repetidas se agrupam num array JSON — mesmo comportamento que você obtém de URLSearchParams. A saída é então formatada com as mesmas regras de JSON.stringify que todas as outras ferramentas JSON deste site usam.

Se você só quer olhar as partes de uma URL na tela — depurar um redirecionamento, dar uma olhada numa cadeia de trackers — a página URL Parser é mais adequada. As duas páginas fazem a mesma conversão; esta aqui foi pensada para o caso em que o JSON em si é o artefato que você quer guardar. Tudo é local no seu navegador, sem upload, sem logs. A conversão segue a RFC 3986 para sintaxe e a RFC 8259 para a saída JSON.

Como converter uma URL em JSON

Três passos. Cada um corresponde a um botão desta página.

1

Cole uma URL ou carregue o exemplo

Solte uma URL no painel da esquerda. Clique em Exemplo para carregar uma URL de e-commerce realista com codificação porcentual, chaves de consulta repetidas e fragmento. Exemplo:

https://api.shop.example.com/v1/orders?customer=Ava%20Chen&status=active&total%5Bgte%5D=49.99&page=2#summary

Qualquer coisa que o construtor URL aceitar funciona — <code>http://</code>, <code>https://</code>, <code>file://</code>, <code>mailto:</code>, hosts IPv6 e userinfo.

2

Leia a saída JSON

O painel da direita atualiza enquanto você digita. Você verá protocol, host, port, pathname, pathSegments (o caminho dividido em array), searchParams (pares chave-valor decodificados, com arrays para chaves repetidas) e hash. O campo href guarda a forma canônica e normalizada da URL — útil quando você precisa garantir que duas URLs são equivalentes mesmo que uma tenha porta padrão ou barra final.

3

Copie, baixe ou minifique para sua fixture

Clique em Copiar para enviar o JSON para a área de transferência, em Baixar para salvar como url.json, ou em Minificar para compactá-lo em uma única linha para um log ou parâmetro de consulta. Limpar no painel de entrada zera os dois editores.

Quando você usaria isso de verdade

Construir fixtures de requisição HTTP

Quando seus testes validam uma URL, comparar como string é frágil — capitalização, portas padrão, barras finais e ordem dos parâmetros mordem. Converta a URL em JSON, jogue o objeto na sua fixture e valide campo por campo. Combina bem com bibliotecas como Mock Service Worker ou Nock que casam pela forma da URL.

Configurar clientes de API em arquivos de config

Uma config YAML ou JSON que guarda uma URL base como string única força cada consumidor a parseá-la de novo. Guardá-la já decomposta (host, port, basePath, defaultParams) deixa a config autodocumentada e remove uma classe inteira de bugs do tipo "esquecemos a barra final". Útil para geradores de SDK e ferramentas OpenAPI.

Documentação de callbacks OAuth e webhook

Quando você está escrevendo docs que mostram "sua URL de callback vai ser assim", entregar um detalhamento JSON ao lado da URL bruta é muito mais amigável para quem lê. Padrões como a RFC 6749 exigem parâmetros de consulta específicos; uma forma estruturada deixa claro num piscar de olhos "você deve ver state aqui".

Exports de environment do Postman / Bruno / HTTPie

A maioria dos clientes de API guarda URLs como objetos decompostos internamente. Se você está importando URLs antigas para uma coleção nova — digamos, migrando de um site de docs que lista endpoints como strings — convertê-las em JSON antes deixa você scriptar a importação em vez de clicar em 200 endpoints na mão.

Perguntas frequentes

Qual a diferença para a página URL Parser?

Mesmo motor, enquadramento diferente. URL Parser é para inspecionar — você cola uma URL longa, olha as partes, decide o que está errado, fecha a aba. URL para JSON é para pegar o resultado e usar em outro lugar — um arquivo de fixture, uma config, um environment do Postman. A saída JSON é idêntica; o texto e os casos de uso é que estão ajustados ao fluxo "quero isso num arquivo".

Por que a saída é JSON em vez de YAML ou um literal de objeto JS?

JSON é o menor denominador comum — toda linguagem, todo sistema de configuração, todo framework de testes lê. Se você precisa de YAML, passe o JSON pela nossa ferramenta JSON para YAML. Se precisa de um literal de objeto JS, JSON já é JS válido — basta colar no seu arquivo .ts. A conversão segue a RFC 8259, então a saída funciona em qualquer lugar que aceite JSON.

Como chaves de consulta repetidas são representadas?

Chaves repetidas se agrupam num array. ?tag=red&tag=blue vira "tag": ["red", "blue"]. É como Express, FastAPI, ASP.NET, Spring e a maioria dos frameworks parseiam query strings — e é o que URLSearchParams.getAll() retorna.

E os arrays com notação de colchetes, tipo ?items[]=1&items[]=2?

Os colchetes são preservados como parte da chave — você verá "items[]": ["1", "2"] na saída. É uma representação fiel dos bytes que trafegam na rede. Se o seu framework (PHP, Rails, qs.js) precisa que os colchetes sejam removidos ou expandidos num objeto aninhado, faça isso num passo de pós-processamento sobre o JSON.

O JSON inclui a senha se minha URL tiver user:pass@host?

Sim — os campos username e password aparecerão na saída se estiverem na sua URL. A conversão roda inteira no seu navegador, então as credenciais nunca saem da sua máquina. Dito isso, colocar credenciais em URLs é geralmente uma má ideia (ver RFC 3986 §3.2.1), e você quase certamente vai querer removê-las antes de comitar o JSON num repositório.

Posso converter uma lista de URLs de uma vez?

Nesta página não — cada sessão converte uma URL. Se você tem cem URLs para processar, o caminho mais fácil é colar a estrutura de saída desta página num scriptzinho e fazer um loop. Ou usar nosso JSON Formatter depois de scriptar o batch você mesmo. Conversão em lote como funcionalidade da UI está no roadmap, mas ainda não foi entregue.

Outras ferramentas de URL e JSON

A conversão é só uma operação. O que combina naturalmente com ela: