Escapar e desescapar strings JSON (Com exemplos)

By Help2Code Editorial Team Published 16 Jun 2026 Updated 22 Oct 2026 689 words
Also available in: 🇬🇧 EN

O JSON utiliza um conjunto específico de sequências de escape para incluir caracteres especiais dentro de strings. Se a sua string contiver aspas duplas, uma barra invertida ou caracteres de controle, você precisa escapá-los para que o JSON seja válido. Entender o escape de JSON é essencial para gerar saídas JSON corretas e depurar payloads JSON malformados.

Sequências de Escape do JSON

Caractere Sequência de escape Descrição
" \" Aspas duplas
\ \\ Barra invertida
/ \/ Barra normal
\b \\b Retrocesso
\f \\f Avanço de página
\n \\n Nova linha
\r \\r Retorno de carro
\t \\t Tabulação
\uXXXX \\uXXXX Caractere Unicode por código hexadecimal

Quando o Escape É Necessário

Se você inserir uma string gerada pelo usuário em um payload JSON, precisará escapá-la. Considere um objeto JSON em que um campo de nome contém aspas duplas:

{"name": "John "The Man" Doe"}

Esse JSON é inválido porque as aspas duplas dentro do valor encerram a string prematuramente. A saída correta é:

{"name": "John \"The Man\" Doe"}

Métodos Específicos de Cada Linguagem

JavaScript

O JavaScript oferece JSON.stringify(), que escapa strings automaticamente.

const user = { name: 'John "The Man" Doe' };
const json = JSON.stringify(user);
console.log(json);
// Saída: {"name":"John \"The Man\" Doe"}

// Escape manual (raramente necessário)
function escapeJson(str) {
  return str
    .replace(/\\/g, '\\\\')
    .replace(/"/g, '\\"')
    .replace(/\n/g, '\\n')
    .replace(/\r/g, '\\r')
    .replace(/\t/g, '\\t')
    .replace(/\f/g, '\\f');
}

// Desescape
function unescapeJson(str) {
  return JSON.parse(`"${str}"`);
}

PHP

// Automático via json_encode
$data = ['name' => 'John "The Man" Doe'];
echo json_encode($data);
// Saída: {"name":"John \"The Man\" Doe"}

// Escape manual
$escaped = addslashes('John "The Man" Doe');
echo $escaped;
// Saída: John \"The Man\" Doe

// A flag JSON_UNESCAPED_UNICODE preserva Unicode
echo json_encode(['emoji' => '😀'], JSON_UNESCAPED_UNICODE);
// Saída: {"emoji":"😀"}

Python

import json

# Automático via json.dumps
data = {"name": 'John "The Man" Doe'}
print(json.dumps(data))
# Saída: {"name": "John \"The Man\" Doe"}

# Impressão formatada com escape
print(json.dumps(data, indent=2))

# A flag ensure_ascii escapa Unicode
print(json.dumps({"emoji": "😀"}, ensure_ascii=True))
# Saída: {"emoji": "\ud83d\ude00"}

Ruby

require 'json'

data = { name: 'John "The Man" Doe' }
puts JSON.generate(data)
# Saída: {"name":"John \"The Man\" Doe"}

# Ou com formatação indentada
puts JSON.pretty_generate(data)

Erros Comuns

Escape duplo acontece quando você escapa uma string que já está escapada. A sequência \\" se transforma em \\\\\\" se for escapada novamente, e o JSON fica corrompido.

Falta de escapes Unicode para caracteres não ASCII. Embora o JSON suporte Unicode diretamente em ambientes UTF-8, alguns parsers antigos esperam sequências \uXXXX. A flag ensure_ascii no Python controla esse comportamento.

Não escapar caracteres de controle. Um caractere de nova linha bruto dentro de uma string JSON é inválido. Sempre use \n.

Ferramenta Online

A ferramenta Escape e Desescape de JSON do Help2Code faz o escape e o desescape instantaneamente. Cole a sua string, escolha a direção e copie o resultado. É a forma mais rápida de escapar uma string para incluí-la em um payload JSON.

Escape em Contextos Aninhados

Quando o JSON é incorporado em outro formato, como HTML ou uma URL, você precisa de várias camadas de escape. Uma string JSON dentro do valor de um atributo HTML precisa passar pelo escape de JSON e depois pela codificação de entidades HTML:

<div data-config='{"name":"John &quot;The Man&quot; Doe"}'>

O JSON usa \" para as aspas e, em seguida, o atributo HTML usa &quot; para a string JSON. As duas camadas são necessárias para produzir uma saída válida.

Conclusão

Um escape de JSON adequado garante que os seus dados sejam serializados corretamente e que os parsers JSON não travem diante de caracteres especiais. Em código de produção, prefira as funções de serialização JSON nativas da sua linguagem em vez do escape manual. Para tarefas rápidas de escape, a ferramenta online Escape e Desescape de JSON é a opção mais rápida.


About this article

Aprenda a escapar e desescapar corretamente strings JSON em JavaScript, PHP, Python e outras linguagens.


Related Articles


Related Tools