1001Ferramentas
🔄Conversores

Conversor JSONP para JSON

Remove o wrapper de callback de uma resposta JSONP e devolve apenas o JSON contido dentro dos parênteses.

Tirando o callback de uma resposta JSONP

Você abriu uma URL antiga de API no navegador e o que voltou foi algo como callback({...});. Isso é JSONP: o JSON embrulhado numa chamada de função, o truque que todo mundo usava para driblar a política de mesma origem antes do CORS existir. Nenhum parser aceita esse texto, então colar num validador de JSON dá erro no primeiro caractere. Aqui você cola a resposta inteira e recebe só o miolo.

A ferramenta compara o texto inteiro com o padrão nome(conteúdo), com ponto e vírgula opcional no fim, e devolve o que está entre o primeiro e o último parêntese, já sem espaços nas pontas. O nome do callback pode ter letras, números, underscore, cifrão e ponto, então uma resposta no estilo angular.callbacks._0({...}) funciona. Quando nada casa, aparece a mensagem de formato não reconhecido em vez de um resultado errado.

Dois detalhes práticos. APIs do Google costumam mandar um comentário /**/ antes do nome da função, e esse prefixo quebra o reconhecimento: apague o comentário antes de colar. E o miolo sai como texto cru, sem validação nem identação, então se a chamada carregar mais de um argumento você recebe todos, separados por vírgula. A página tem só os dois campos e roda inteira no navegador.

Perguntas frequentes

O resultado sai identado?
Não. Você recebe exatamente o texto que estava entre os parênteses, apenas sem os espaços das pontas. Para formatar, passe o resultado em um beautifier de JSON depois.
Funciona com o prefixo /**/ das APIs do Google?
Não. O padrão espera que o texto comece pelo nome da função, então apague o comentário inicial antes de colar.
Ele verifica se o conteúdo é JSON válido?
Não. A ferramenta só remove o embrulho. Se o servidor devolveu JavaScript com aspas simples ou chaves sem aspas, isso passa intacto.

Ferramentas Relacionadas