Conversor de query string para JSON
Cole a parte de consulta de um endereço web e leia cada chave com o valor decodificado: tag=sale&tag=new vira uma lista tag com sale e new, e os códigos de porcentagem voltam a ser São Paulo. Valores vazios continuam visíveis. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Uma query string é fácil de reconhecer, mas torna-se difícil de inspecionar quando contém caracteres codificados, valores vazios, filtros repetidos e sinalizadores específicos de uma aplicação. Ele decodifica escapes percentuais como UTF-8, interpreta sinais de mais como espaços, mantém valores vazios visíveis e representa nomes de parâmetros repetidos como listas na ordem original. A transformação é determinística e adequada para analisar requisições, montar dados de teste, revisar logs e desenvolver ferramentas internas.
Transforme parâmetros compactos em um objeto fácil de inspecionar
Query strings foram criadas para transportar dados, não para oferecer uma leitura confortável. Um navegador ou cliente pode enviar em uma única linha compacta um termo de busca, várias etiquetas selecionadas, um campo opcional vazio e uma localização com caracteres internacionais. Um parâmetro escrito sem sinal de igual é mantido com uma string vazia, assim como um parâmetro seguido explicitamente por um sinal de igual sem conteúdo.
Segmentos vazios entre os sinais de e comercial são ignorados, pois não contêm parâmetros. Isso permite comparar a saída com o estado da aplicação: os valores ficam visíveis, os vazios não somem e os contadores mostram tanto as chaves distintas quanto o total de pares processados. O analisador não acessa o servidor de destino nem deduz tipos de negócio; valores como true, 42 e null continuam sendo strings.
Entenda a decodificação e o tratamento de chaves repetidas
Cada chave e cada valor são decodificados separadamente segundo as regras convencionais de formulários web. Um sinal de mais vira espaço, enquanto escapes percentuais como %20 e sequências UTF-8 com vários bytes tornam-se os caracteres pretendidos. O sinal de igual é especial somente em sua primeira ocorrência dentro de cada par; por isso, um valor pode conter outros sinais de igual sem ser dividido novamente.
Chaves repetidas são preservadas em vez de sobrescritas: a primeira ocorrência começa como string, a segunda transforma a propriedade em uma lista e as próximas são acrescentadas na ordem recebida. Por exemplo, tag=sale&tag=new produz uma lista tag com sale antes de new. Isso ajuda a analisar filtros, grupos de caixas de seleção e frameworks que serializam múltiplas escolhas sob um único nome.
Escapes percentuais inválidos geram um erro de entrada em vez de uma decodificação parcial, e bytes codificados que não formam UTF-8 válido também são recusados.
Use o resultado em testes, logs e diagnóstico de requisições
O objeto convertido funciona bem sempre que você precisa compreender uma consulta antes que o código aja sobre ela. Em testes automatizados, converta strings representativas em dados estáveis e confirme que filtros repetidos, texto internacional, sinais de mais e campos vazios chegam no formato previsto. Ao revisar logs, a estrutura é mais fácil de ler e comparar do que uma linha longa codificada, especialmente quando a mesma chave aparece várias vezes.
O conversor evita deliberadamente coerção de esquema: se a sua aplicação espera número, booleano, data ou uma convenção aninhada com colchetes, aplique depois a validação específica dela. Esse limite impede que uma ferramenta genérica invente significados que o remetente não declarou. Os nomes de propriedades são tratados com segurança como dados, inclusive quando lembram elementos internos do JavaScript.
Casos de uso
Inspecione dados codificados em logs
Torne os parâmetros codificados legíveis antes de investigar buscas, redirecionamentos ou integrações de rastreamento.
Perguntas frequentes
Posso incluir o ponto de interrogação inicial?
Sim. A entrada pode começar com um ponto de interrogação ou conter apenas os caracteres posteriores.
Como os nomes de parâmetros repetidos são representados?
Uma chave que aparece uma vez tem valor de string. Quando se repete, os valores formam uma lista na ordem original.
A ferramenta decodifica sinais de mais e escapes percentuais?
Sim. Sinais de mais viram espaços, e bytes percentuais válidos são decodificados como UTF-8 nas chaves e nos valores.
Números e valores true ou false mudam de tipo?
Não. Cada valor continua sendo o texto que foi enviado, então 42 ou true aparecem exatamente como estão. Nada é convertido por suposição, e o resultado mostra com fidelidade o que o endereço levava.
O que acontece com um código de porcentagem quebrado?
A consulta inteira é recusada em vez de ser decodificada pela metade. O mesmo vale para bytes codificados que não formam texto UTF-8 válido, porque um resultado parcial e plausível poderia esconder o problema real.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"text": "?search=blue+shoes&tag=sale&tag=new&city=S%C3%A3o+Paulo&empty="
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.query_string_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Este conversor de query string para JSON transforma esse formato compacto de transporte em um objeto estruturado que você pode ler, copiar, comparar ou integrar a um fluxo de depuração.
Transforme parâmetros compactos em um objeto fácil de inspecionar
Cole no conversor a parte que vem depois do caminho da URL, com ou sem o ponto de interrogação inicial, e o resultado separará cada parâmetro em uma propriedade JSON. Esse comportamento previsível torna o JSON uma representação fiel do que a consulta realmente transportou.
Entenda a decodificação e o tratamento de chaves repetidas
Essa falha estrita evita que um resultado aparentemente plausível esconda uma requisição malformada. pair_count inclui repetições, enquanto key_count informa quantos nomes decodificados são distintos.
Use o resultado em testes, logs e diagnóstico de requisições
Durante o desenvolvimento de uma API, cole a query string de uma requisição com falha e compare o JSON decodificado aos parâmetros esperados pela rota. Use a versão no navegador para verificações rápidas ou chame a API por US$ 0,002 quando um pipeline, executor de testes ou fluxo de observabilidade precisar repetir a mesma conversão determinística.
Casos de integração
Depure uma requisição de API
Decodifique a consulta exata enviada por um cliente e compare chaves, valores vazios e filtros repetidos com o contrato da rota.
Crie dados de teste estáveis
Transforme query strings representativas em resultados JSON determinísticos para testes de integração e regressão.
Perguntas técnicas
Quanto custa o conversor?
A ferramenta no navegador é gratuita. As requisições à API usam o preço-base publicado de US$ 0,002.
Ela converte números e booleanos em tipos JSON?
Não. Os parâmetros retornam como strings para que o conversor não presuma um esquema nem altere os dados enviados.