Escapar JSON como literal de string (e decodificar JSON com codificação dupla)
Fazer stringify de JSON o envolve em aspas e faz escape das aspas internas e dos caracteres especiais, produzindo um literal de string JSON pronto para ser embutido em outro lugar.
O que significa «stringificar para um literal»
Passar uma string JSON por JSON.stringify a envolve em aspas duplas e escapa as aspas internas e as barras invertidas, produzindo um único valor de string seguro para embutir.
Por que você precisa disso
Embutir JSON dentro de outro campo JSON, guardar JSON em uma coluna de tipo string em um banco, ou passar JSON via variável de ambiente ou parâmetro de URL exige um literal de string escapado.
Regras de escape
As aspas duplas são escapadas com uma barra invertida, as barras invertidas são duplicadas, e caracteres de controle como quebra de linha e tab viram suas sequências de escape de dois caracteres. O resultado não contém quebras de linha cruas.
Decodificar JSON com codificação dupla
Se você receber uma string que começa com uma aspa escapada e contém sequências de aspas escapadas, ela foi stringificada. Parseie uma vez para recuperar a string JSON interna, depois parseie de novo para obter o valor real.
Onde a codificação dupla aparece
Frameworks de logging que serializam objetos de contexto, payloads de webhook que envolvem um corpo JSON em um campo 'body', filas de mensagens que enviam «envelopes JSON-como-string», e colunas de banco do tipo text ou varchar são as fontes mais comuns. Procure uma aspa inicial seguida de um número par de barras invertidas.
Trabalhando com JSON embutido em logs
Loggers estruturados geralmente stringificam objetos para manter cada linha como um único valor. Para inspecionar, tire a linha do visualizador de logs, desescape com JSON.parse e então formate o JSON recuperado. Evite dar grep em um objeto JSON multilinha — JSON stringificado em uma linha é muito mais fácil de buscar.
Ferramentas para o round-trip
Console do navegador: JSON.parse(line) devolve o JSON interno e JSON.stringify(...,null,2) imprime bonitinho. Node CLI: 'node -e "console.log(JSON.parse(process.argv[1]))" "<line>"' faz os dois passos. A ferramenta JSON Stringify deste site lida com aninhamento de qualquer profundidade em um clique.
Guias de reparação de JSON
Núcleos temáticos
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Guias específicos
- Como decodificar strings Base64 (e payloads JWT)
- Codificação URL: codifique parâmetros de consulta e caminhos
- Converter YAML para JSON (e evitar erros de indentação)
- Converter JSON para CSV: achatar um array de objetos
- Converter JSON para XML: raiz, atributos e arrays
- Corrigir vírgulas finais em JSON
- Corrigir aspas simples em JSON
- Corrigir chaves sem aspas em JSON
- Reparar JSON gerado por LLM
- Corrigir o erro de parse JSON: Expected Property Name
- JSON x literal de objeto JavaScript
- Valide o JSON antes das requisições de API
- Formatador JSON x JSON Repair
- Corrigir erros JSON Unexpected Token
- Conversor de JSON para objeto JavaScript