100 % local — seus dados nunca saem do seu navegador

String JSON para texto — leia o valor de dentro

Decodifique um literal de string JSON em texto. As aspas em volta são opcionais, e uma recusa diz o que está errado e onde, então dá para corrigir.

Instantâneo Privado Zero cookies

Entrada JSON String

Saída Text

O que esta ferramenta faz

Um literal de string JSON vira o texto que representa. "caf\u00e9" dá café, "duas\nlinhas" dá duas linhas, e "\ud83d\ude00" dá o emoji — um par substituto é um caractere, não duas metades quebradas.

As aspas são opcionais

As duas formas funcionam:

"caf\u00e9"
caf\u00e9

É deliberado. Uma string JSON raramente chega com as aspas intactas: você a copia de uma linha de log, de um git diff, de um stack trace, de uma mensagem de erro que citou só o interior. Exigir as aspas significaria recolocá-las à mão toda vez.

O preço é pequeno e dito com clareza: uma entrada nua que por acaso é JSON válido de outro tipo — [1,2], null — é lida como texto, porque é isso que um fragmento nu significa aqui. Só uma entrada entre aspas é analisada como literal.

Uma recusa diz o quê e onde

Uma entrada que não é uma string JSON é recusada em vez de decodificada pela metade, e a mensagem nomeia a causa:

EntradaMensagem
a"bUnescaped quotation mark at position 1: write it as \"
"ab\q"Unknown escape "\q" at position 3
"a\u12"Invalid \u escape at position 2: four hexadecimal digits expected
"abcThe opening quotation mark has no closing quotation mark
{"a":1}Expected a JSON string, found a JSON object

As posições contam de zero e se referem ao texto que você colou, então o número leva você ao caractere.

Vale dizer porque antes não era assim: cada um desses casos produzia a mensagem única Invalid JSON string escape sequence. Um objeto colado não é um erro de escape, e ouvir o contrário manda você procurar no lugar errado. Era um defeito real desta ferramenta, encontrado ao escrever esta página e corrigido.

Nada é adivinhado

Um escape desconhecido é um erro, não um caractere. \q não é JSON válido, e decidir que ele “provavelmente queria dizer q” devolveria um texto sutilmente diferente do que a fonte continha — o tipo de diferença que aparece três sistemas adiante.

Privado por padrão

Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.

Perguntas frequentes

Preciso incluir as aspas em volta?
Não. Um literal entre aspas e um fragmento nu como `caf\u00e9` são ambos aceitos, porque muitas vezes você só tem o interior de uma string — copiado de uma linha de log, de um diff, de um stack trace. Se as aspas estiverem lá, são usadas; se não, são acrescentadas.
Por que meu objeto JSON foi recusado?
Porque esta ferramenta decodifica uma string, não um documento. Colar `{"a":1}` dá `Expected a JSON string, found a JSON object` em vez de uma reclamação confusa sobre escapes. Para ler um documento inteiro, use o formatador ou o validador JSON.
Diz "Unescaped quotation mark at position 4". O que significa?
Que o caractere 4 do que você colou é uma `"` que fecha a string cedo demais. Dentro de uma string JSON, uma aspa se escreve `\"`. As posições contam de zero e se referem ao texto que você digitou, então você vai direto ao caractere em vez de caçá-lo.

Conversores relacionados