Conversor de x-www-form-urlencoded para JSON
Uma ferramenta local-first que transforma corpos de formulário e parâmetros de URL em JSON estruturado, sem exigir conta.
- Aceita
- Form body, query ou URL completa
- Chaves repetidas
- Preservadas em arrays
- Modo navegador
- Processamento local
- Automação
- API JSON versionada
Que problema ela resolve?
Formulários, callbacks OAuth, exemplos de webhook e URLs copiadas costumam chegar como sequências densas. Ler escapes e parâmetros repetidos manualmente é lento e sujeito a erro.
O conversor aceita conteúdo application/x-www-form-urlencoded, uma query iniciada por interrogação ou uma URL completa. Ele usa as regras de formulário do navegador e devolve JSON formatado.
Exemplos de conversão
Os exemplos mostram detalhes que scripts básicos de separação por e comercial costumam tratar incorretamente.
Corpo de formulário simples
name=Fabreco+Studio&active=true{ "name": "Fabreco Studio", "active": "true" }O sinal de mais vira espaço. Os valores continuam strings porque form encoding não carrega tipos JSON.
Campos repetidos
tag=nextjs&tag=typescript&tag=testing{ "tag": ["nextjs", "typescript", "testing"] }Nomes repetidos viram arrays para que nenhum valor seja sobrescrito.
URL completa
https://example.com/callback?code=a%3Db&state=ready#done{ "code": "a=b", "state": "ready" }Apenas a query é convertida; escapes são decodificados e o fragmento é ignorado.
Como a análise funciona
O conversor normaliza a entrada: uma URL completa fornece sua query, a interrogação inicial é removida e form data bruto é usado diretamente.
URLSearchParams aplica as regras padrão, incluindo percent encoding, sinal de mais como espaço, valores vazios e sinais de igual dentro do valor. Chaves repetidas são agrupadas antes da serialização.
A interface chama uma função pura e tipada sem transmitir a entrada. Uma API POST separada reutiliza a função; nela, o conteúdo chega ao servidor, tem limite de 50 mil caracteres e não é persistido.
Limitações conhecidas
- Form encoding não tem tipos nativos para números, booleanos, null ou objetos; os valores permanecem strings.
- Convenções como user[name] e items[] são preservadas como nomes de chave e não viram objetos aninhados.
- Escapes malformados seguem o comportamento do parser do navegador e podem diferir de decodificadores customizados.
- Uma URL sem query não tem conteúdo para converter.
- A API pública não exige autenticação e não deve receber segredos quando a conversão local for suficiente.
Erros comuns
Tratar o sinal de mais como literal
Em form encoding, o sinal representa espaço. Um mais literal normalmente deve ser codificado como %2B.
Converter tipos automaticamente
As strings “true” e “42” continuam strings. Converta tipos apenas quando sua aplicação conhece o schema.
Sobrescrever chaves repetidas
Muitos parsers rápidos mantêm só o último valor. O conversor preserva todas as ocorrências em um array.
Enviar dados sensíveis para a API
Use o conversor no navegador para credenciais, dados pessoais ou callbacks privados quando o processamento local for necessário.
FAQ
Perguntas sobre dados de formulário
Por que todos os valores JSON são strings?
application/x-www-form-urlencoded representa pares textuais e não inclui tipos JSON. Converter tipos exige um schema externo.
O que acontece com chaves repetidas?
O primeiro valor permanece string até que outro com a mesma chave apareça; os valores repetidos passam a formar um array.
Posso colar uma URL completa?
Sim. O conversor extrai os parâmetros da query e ignora o caminho e o fragmento.
Existe uma API?
Sim. O site publica um endpoint POST versionado, descrição OpenAPI, health check e recursos de descoberta. Solicitações da API são processadas no servidor.