ToolDeck

Escapador de String JSON

Escape e unescape de caracteres especiais JSON em strings

Experimente um exemplo

Entrada

Saída

Roda localmente · Seguro para colar segredos
O resultado aparecerá aqui…

O que é Escape de Strings JSON?

O escape de strings JSON é o processo de converter caracteres especiais dentro de uma string em sequências de escape que os parsers JSON conseguem ler sem quebrar a estrutura. A especificação JSON (ECMA-404 / RFC 8259) exige que determinados caracteres dentro de valores de string sejam precedidos por uma barra invertida. Sem o escape adequado, uma aspas dupla literal ou uma quebra de linha dentro de uma string encerraria a string prematuramente e produziria um erro de análise.

Toda string JSON é delimitada por aspas duplas. Quando a própria string contém aspas duplas, barras invertidas ou caracteres de controle (U+0000 a U+001F), o caractere deve ser substituído pela sua sequência de escape. Por exemplo, uma quebra de linha literal vira \n, uma tabulação vira \t e aspas duplas viram \". Qualquer ponto de código Unicode também pode ser representado como \uXXXX, onde XXXX é o valor hexadecimal de quatro dígitos.

O unescape (operação inversa) converte essas sequências com barra invertida de volta nos caracteres originais. Use-o quando receber um payload JSON onde os valores de string estão com duplo escape, ou quando precisar extrair texto bruto de uma entrada de log JSON para exibição em uma interface ou terminal. Pipelines de agregação de logs encontram isso constantemente: quando uma mensagem codificada em JSON é armazenada como valor de string dentro de outro documento JSON, cada barra invertida na string interna chega duplicada.

Por que usar uma ferramenta de escape JSON?

Adicionar ou remover barras invertidas manualmente é tedioso e sujeito a erros, especialmente ao lidar com texto multilinha, caminhos de arquivo ou trechos de código embutidos. Uma ferramenta dedicada de escape detecta casos extremos que a edição manual deixa passar.

🔒
Processamento com privacidade em primeiro lugar
Suas strings nunca saem do navegador. Todo o escape e unescape é executado localmente em JavaScript sem chamadas ao servidor, então dados sensíveis como chaves de API ou tokens permanecem na sua máquina.
Conversão instantânea
Cole qualquer texto e obtenha a saída JSON corretamente escapada em milissegundos. Sem esperar por uma ida e volta a um servidor remoto.
🛡️
Sem conta ou instalação
Abra a página e comece a escapar. Sem formulário de cadastro, sem extensão de navegador, sem ferramenta de linha de comando para instalar. Funciona em qualquer dispositivo com um navegador moderno.
📋
Cobertura completa de caracteres
Trata todos os escapes exigidos pelo JSON: aspas duplas, barras invertidas, caracteres de controle (U+0000 a U+001F) e sequências Unicode incluindo emoji e caracteres CJK.

Casos de uso do Escape de Strings JSON

Desenvolvimento frontend
Escape o conteúdo gerado pelo usuário antes de embutí-lo em um payload JSON enviado via fetch ou XMLHttpRequest. Previne requisições malformadas quando usuários digitam aspas, quebras de linha ou emoji.
Trabalho com APIs backend
Construa corpos de resposta JSON em linguagens que não escapam strings automaticamente (scripts shell, stored procedures SQL, template engines). Cole a string bruta, copie a versão escapada.
DevOps e configuração
Incorpore blocos PEM de certificados multilinha, chaves SSH ou scripts shell em arquivos de configuração JSON para Terraform, CloudFormation ou ConfigMaps do Kubernetes sem quebrar a estrutura JSON.
QA e testes
Crie fixtures de teste que incluam caracteres extremos: tabulações, bytes nulos, pares substitutos Unicode e strings com escape aninhado. Verifique se o seu parser os trata corretamente.
Engenharia de dados
Limpe entradas de log com duplo escape do Elasticsearch, CloudWatch ou Datadog. Descape a string para recuperar a mensagem original para análise ou reingestão.
Aprendendo JSON
Veja exatamente quais caracteres precisam de escape conforme a especificação JSON. Útil para quem está estudando a ECMA-404 ou construindo seu próprio parser JSON.

Referência de Sequências de Escape JSON

A especificação JSON define exatamente dois escapes obrigatórios (aspas dupla e barra invertida) e seis sequências de escape curtas para caracteres de controle comuns. Todos os outros caracteres de controle (U+0000 a U+001F) devem usar a forma \uXXXX. Caracteres acima de U+FFFF (como emoji) podem ser representados como um par substituto UTF-16: \uD83D\uDE00.

CaractereDescriçãoForma escapada
"Double quote\"
\Backslash\\
/Forward slash\/ (optional)
\nNewline (LF)\n
\rCarriage return\r
\tTab\t
\bBackspace\b
\fForm feed\f
U+0000–U+001FControl characters\u0000–\u001F
U+0080+Non-ASCII (e.g. emoji)\uXXXX or raw UTF-8

Escape JSON vs. Codificação JSON

Desenvolvedores às vezes confundem escapar uma string com codificar um documento JSON completo.

Escape de string
Opera sobre o texto dentro de um valor de string JSON. Substitui caracteres especiais por sequências com barra invertida para que a string permaneça válida entre aspas duplas. Entrada: texto bruto. Saída: texto escapado (ainda precisa de aspas ao redor para ser um JSON válido).
Codificação JSON (Serialização)
Converte uma estrutura de dados inteira (objetos, arrays, números, booleanos, nulos) em uma representação de texto JSON. O escape de strings é uma etapa dentro desse processo maior. Entrada: uma estrutura de dados. Saída: um documento JSON completo.

Exemplos de código

Todas as principais linguagens têm funções nativas para isso. Exemplos em JavaScript, Python, Go e jq:

JavaScript (browser / Node.js)
// JSON.stringify escapes a value and wraps it in quotes
JSON.stringify('Line 1\nLine 2')       // → '"Line 1\\nLine 2"'

// To get just the inner escaped string (no surrounding quotes):
const escaped = JSON.stringify('She said "hello"').slice(1, -1)
// → 'She said \\"hello\\"'

// Parsing reverses the escaping
JSON.parse('"tabs\\tand\\nnewlines"')  // → 'tabs\tand\nnewlines'

// Handling Unicode: emoji in JSON
JSON.stringify('Price: 5\u20ac')       // → '"Price: 5\u20ac"' (raw euro sign)
Python
import json

# json.dumps escapes and quotes a string
json.dumps('Line 1\nLine 2')           # → '"Line 1\\nLine 2"'

# Ensure ASCII: replace non-ASCII with \uXXXX sequences
json.dumps('Caf\u00e9', ensure_ascii=True)   # → '"Caf\\u00e9"'

# Keep UTF-8 characters as-is (default in Python 3)
json.dumps('Caf\u00e9', ensure_ascii=False)  # → '"Caf\u00e9"'

# Unescape by round-tripping through json.loads
json.loads('"She said \\"hello\\""')      # → 'She said "hello"'
Go
package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	// json.Marshal escapes a Go string for JSON
	raw := "Line 1\nLine 2\tindented"
	b, _ := json.Marshal(raw)
	fmt.Println(string(b))
	// → "Line 1\nLine 2\tindented"

	// Unescape with json.Unmarshal
	var out string
	json.Unmarshal([]byte(`"She said \"hello\""`), &out)
	fmt.Println(out)
	// → She said "hello"
}
CLI (jq)
# Escape a raw string into a JSON-safe value
echo 'Line 1
Line 2	with tab' | jq -Rs '.'
# → "Line 1\nLine 2\twith tab\n"

# Unescape a JSON string back to raw text
echo '"She said \"hello\""' | jq -r '.'
# → She said "hello"

Perguntas frequentes

Quais caracteres precisam de escape em uma string JSON?
A especificação JSON (RFC 8259) exige o escape das aspas duplas (\"), da barra invertida (\\) e de todos os caracteres de controle de U+0000 a U+001F. A barra normal (/) pode ser escapada como \/ mas isso é opcional. Todos os outros caracteres Unicode, incluindo texto não-ASCII e emoji, podem aparecer sem escape desde que o documento use codificação UTF-8.
Qual é a diferença entre escape JSON e JSON stringify?
JSON.stringify() em JavaScript serializa um valor JavaScript inteiro em uma string JSON, adicionando aspas duplas ao redor e escapando caracteres especiais internos. O escape JSON refere-se especificamente à substituição em nível de caractere de caracteres especiais por sequências com barra invertida. Chamar JSON.stringify() em uma string realiza o escape como parte do processo de serialização.
Como escapar uma quebra de linha em JSON?
Substitua o caractere de quebra de linha literal (U+000A) pela sequência de dois caracteres \n. Da mesma forma, o retorno de carro (U+000D) vira \r. Se você usar JSON.stringify() ou json.dumps() em Python, essas substituições acontecem automaticamente.
Por que minha string JSON está com duplo escape?
O duplo escape ocorre quando uma string é serializada duas vezes. Por exemplo, chamar JSON.stringify() em uma string que já contém sequências de escape irá escapar as barras invertidas novamente: \n vira \\n. Para corrigir, parse a string uma vez com JSON.parse() antes de serializar novamente, ou verifique se há etapas de codificação redundantes no seu pipeline.
Posso usar aspas simples em strings JSON?
Não. A especificação JSON exige aspas duplas para todos os valores de string e nomes de propriedades. Aspas simples não são JSON válido e causarão um erro de análise. Se os seus dados de origem contiverem aspas simples, elas não precisam de escape dentro de uma string JSON com aspas duplas, pois aspas simples são caracteres comuns nesse contexto.
É seguro colocar caracteres UTF-8 sem escape em JSON?
Sim, desde que o documento JSON esteja codificado em UTF-8, que o RFC 8259 especifica como a codificação padrão e recomendada. Caracteres como letras acentuadas, ideogramas CJK e emoji podem aparecer diretamente na string sem o escape \uXXXX. Alguns sistemas mais antigos esperam JSON somente ASCII; nesse caso, use a opção ensure_ascii em Python ou uma flag equivalente na sua linguagem.
Como escapar emoji em JSON?
Emoji acima de U+FFFF são representados em JSON usando um par substituto UTF-16. Por exemplo, o rosto sorridente (U+1F600) vira \uD83D\uDE00. A maioria dos serializadores lida com isso automaticamente. Se você estiver escrevendo JSON manualmente ou sua ferramenta só suporta o Plano Multilíngue Básico, use a notação de par substituto. Caso contrário, inclua o emoji diretamente como caractere UTF-8.