O que significa desfazer o stringify
Quando um JSON é guardado dentro de uma string, cada aspa dupla dele vira \", cada quebra de linha vira \n e cada barra invertida vira \\. Você vê isso em arquivos de log, filas de mensagens, payloads de webhooks, ferramentas de desenvolvedor do navegador e colunas de banco de dados que guardam JSON como texto. É válido, mas difícil de ler:
"{\"name\":\"Ada\",\"tags\":[\"admin\",\"dev\"]}"
O unstringify desfaz o escape e devolve o valor original. Se esse valor for um JSON, esta ferramenta também o formata para você conseguir ler.
Como usar
- Cole a string escapada na caixa da esquerda, clique em Abrir arquivo ou em Exemplo.
- O resultado aparece à direita enquanto você digita.
- Ajuste as opções:
- Desfazer strings aninhadas continua o processo quando o resultado é outra string escapada. Vem ligada por padrão.
- Se o resultado for JSON deixa você escolher recuo de 2 ou de 4 espaços, ou Deixar como está.
- Clique em Copiar, ou em Baixar para salvar o resultado como arquivo de texto.
A linha abaixo das caixas informa se o resultado é um JSON válido e quantas camadas de escape foram desfeitas.
Exemplos
A string acima, com Se o resultado for JSON em 2 espaços, vira:
{
"name": "Ada",
"tags": [
"admin",
"dev"
]
}
Um texto escapado sem as aspas de fora também funciona. Esta entrada:
Line one\nLine two\t(tabbed)
dá duas linhas, com uma tabulação de verdade antes de (tabbed):
Line one
Line two (tabbed)
Os escapes Unicode são decodificados. "Café 東京" vira Café 東京, e "Promoção" vira Promoção. Isso ajuda muito com logs de sistemas que escapam todos os acentos do português.
Strings codificadas duas vezes
Às vezes os dados passam pelo stringify duas vezes. As barras invertidas vão se acumulando:
"\"{\\\"event\\\":\\\"signup\\\",\\\"user\\\":7}\""
Com Desfazer strings aninhadas ligado, a ferramenta desfaz as duas camadas e informa que desfez 2 camadas. Com Deixar como está selecionado, o resultado é:
{"event":"signup","user":7}
Com Desfazer strings aninhadas desligado, ela para depois de uma camada e você vê a string interna, ainda escapada:
"{\"event\":\"signup\",\"user\":7}"
Isso é útil quando você quer ver exatamente o que cada camada continha.
Mensagens de erro
Se a entrada não for uma string JSON válida, você recebe a linha e a coluna do problema. Exemplos reais:
| Entrada | Mensagem |
|---|---|
"bad \q escape" |
Linha 1, coluna 6: Sequência de escape inválida \q |
He said "hi" |
Linha 1, coluna 9: Há uma aspa dupla sem o escape \" |
"unterminated |
Linha 1, coluna 1: String não terminada: falta a aspa dupla de fechamento |
O JSON só aceita estes escapes: \", \\, \/, \b, \f, \n, \r, \t e \u seguido de quatro dígitos hex. Escapes de outras linguagens, como \x41 ou \', não são JSON válido. Clique em Mostrar na entrada para ir até o problema.
Como funciona
A ferramenta lê a sua entrada como uma string literal JSON, acrescentando as aspas de fora se estiverem faltando. Ela decodifica os escapes usando as regras do JSON. Se o resultado começar com uma aspa dupla e for, ele mesmo, uma string JSON válida, e se Desfazer strings aninhadas estiver ligado, ela decodifica de novo. Por fim, se o resultado for um objeto ou um array JSON, ele é formatado com o recuo escolhido. Os números de dentro ficam exatamente como foram escritos. Tudo acontece no seu navegador.
Dicas
- Se o resultado não for um JSON válido, ele aparece como texto simples, o que está certo para strings que nunca foram JSON.
- Copie o valor direto da linha do log, incluindo as aspas, para não perder nenhum caractere nas pontas.
- Se aparecerem caracteres
\rsoltos no resultado, o texto original tinha quebras de linha do Windows.
Outras formas de fazer isso
JavaScript. JSON.parse(str) decodifica uma camada. Chame de novo no resultado para um valor codificado duas vezes, e depois use JSON.stringify(value, null, 2) para formatar.
Python. json.loads(s) decodifica uma string JSON. Para uma string codificada duas vezes, chame duas vezes.
jq. jq -r . file.json mostra uma string JSON como texto puro, e jq 'fromjson' analisa uma string que contém JSON.
Ferramentas relacionadas
Para fazer o caminho contrário e escapar um texto em uma string JSON, use o JSON stringify. Para validar ou reformatar o resultado, use o formatador JSON. Para transformá-lo em YAML, use a ferramenta de converter JSON para YAML.