Criado com IA avançada no seu dispositivo e aceleração de hardware para um desempenho profissional com privacidade total.IA no seu dispositivo — profissional e privado.
Escape Unescape de String JSON
Transforme texto num literal JSON, ou decodifique um.
- Nada é enviado
- Camadas aninhadas removidas
- Ida e volta exata
- Erros com linha e coluna
Solte aqui um arquivo de texto
.json · .txt · .log · .ndjson · .jsonl e mais · até 10.0 MB na versão gratuita
As quatro produzem JSON válido. Ligue uma quando o destino do literal se importar.
Gratuito: 1 arquivo até 10.0 MB. Pro: 1 arquivos, conforme o dispositivo.
O que esta ferramenta de escape e unescape JSON faz
O escape transforma qualquer texto numa string JSON válida: entre aspas duplas, com aspas, quebras de linha, tabulações, barras invertidas e caracteres de controle escapados. O unescape faz o contrário — cole uma string JSON e receba o texto simples. Cole-o, escolha um arquivo ou solte um. Se o unescape não conseguir ler a entrada, a ferramenta nomeia a regra quebrada e mostra onde.
- Escape — Envolve o texto em aspas duplas e escapa aspas, quebras de linha, tabulações, barras invertidas e caracteres de controle, para que o resultado seja um literal JSON válido aceito por qualquer analisador.
- Unescape — Lê uma string JSON como "a\nb" e devolve a string original. Um corpo simples sem aspas também funciona — é o que se obtém ao copiar um valor de um arquivo JSON.
- Colar, carregar ou soltar — Cole da área de transferência, use o seletor de arquivos ou arraste um arquivo. Arquivos UTF-8 e UTF-16 são reconhecidos pela marca de ordem de bytes, por isso um arquivo exportado do PowerShell é lido corretamente em vez de chegar ilegível.
- Trocar e recomeçar — Trocar devolve o resultado à entrada e inverte o sentido, por isso uma ida e volta é um só clique. Recomeçar esvazia a lista, o resultado e o seletor de arquivos ao mesmo tempo.
Escape ou unescape: qual você precisa
Quando você insere texto com várias linhas ou entrada de usuário em JSON ou em código, é preciso escapá-lo bem, ou uma aspa ou uma quebra de linha quebra a sintaxe ao redor. O escape dá o literal exato para colar. Quando você já tem uma string escapada — de uma resposta de API, de um agregador de registros, de um arquivo de configuração — e quer ler o texto real, o unescape a inverte. Os dois sentidos são instantâneos e continuam funcionando sem conexão depois que a página carrega.
- Escrever uma configuração ou um fixture — Você tem um certificado, uma instrução SQL ou um modelo com várias linhas e precisa dele como um único valor JSON. Escape-o e as quebras passam a \n em vez de quebrarem o arquivo.
- Ler uma linha de registro — O registro estruturado serializa a mensagem, e muitas vezes o evento inteiro uma segunda vez. Desescape-o e o rastro volta a ser linhas legíveis em vez de uma fila de \n e \".
- Depurar uma resposta de API — Um campo que chega como uma string com JSON dentro é uma carga duplamente codificada. Desescape uma vez para obter o documento interno e envie-o ao Formatador JSON.
- Colar em código-fonte — Um literal que vai para JavaScript, Python ou Go precisa das aspas e das barras escapadas. Escape sem as aspas externas e cole o corpo entre as que você já tem.
Todos os caracteres que o JSON escapa
A gramática do JSON exige escapar exatamente dois caracteres dentro de uma string — a aspa dupla e a barra invertida — mais todos os caracteres de controle abaixo de U+0020. Sete têm forma curta de dois caracteres; os restantes usam uma sequência \u00XX. Esta é a lista completa, e é exatamente isso que a ferramenta produz.
| Caractere | Escapado como | Notas |
|---|---|---|
| Aspa dupla " | \" | Obrigatório. Caso contrário, termina a string. |
| Barra invertida \ | \\ | Obrigatório. Caso contrário, inicia um escape. |
| Quebra de linha U+000A | \n | Obrigatório. Uma quebra real é ilegal dentro de uma string JSON. |
| Retorno de carro U+000D | \r | Obrigatório. |
| Tabulação U+0009 | \t | Obrigatório. |
| Retrocesso U+0008 | \b | Obrigatório. |
| Avanço de página U+000C | \f | Obrigatório. |
| Outros controles U+0000 a U+001F | \u0000 a \u001f | Obrigatório. Não existe forma curta. |
| Substituto isolado U+D800 a U+DFFF | \u + D800 a DFFF | Aqui é sempre escapado. Não tem codificação UTF-8, por isso deixá-lo sem escape perde o caractere ao salvar. |
| Barra / | \/ | Opcional. Ative quando o literal for para dentro de um bloco de script HTML. |
| Não-ASCII acima de U+007F | \u00e9, e 😀 como o par D83D DE00 | Opcional. Ative para um transporte só ASCII. Os caracteres fora do plano básico passam a um par de escapes. |
| Separadores de linha U+2028, U+2029 | \u2028, \u2029 | Opcional. Legais sem escape em JSON e erro de sintaxe em JavaScript antes do ES2019. |
| Eliminar U+007F | não é escapado | O JSON não o exige, por isso fica como está. Ativar o escape de não-ASCII também não muda isso: é um caractere ASCII. |
Vale a pena dizer: escapar e desescapar são inversos exatos. Com qualquer combinação de opções, desescapar o resultado devolve o texto de partida caractere a caractere, incluindo os espaços nas pontas.
Strings aninhadas e duplamente escapadas
A razão mais comum para um unescape parecer não funcionar é o valor ter sido escapado mais do que uma vez. Cada rodada de serialização duplica as barras invertidas: uma mensagem que começou como uma quebra de linha passa a \n, depois a \\n, depois a \\\\n. Uma passagem retira uma camada, e o que sobra ainda parece escapado.
- Deixe a profundidade em Automático — A ferramenta continua enquanto o resultado for uma string JSON entre aspas, até dez camadas, e depois para. Informa quantas camadas retirou, por isso você sempre sabe o que aconteceu.
- Defina uma profundidade exata para parar no meio — Escolha 1, 2 ou qualquer número até 10 para retirar exatamente essas camadas. Útil quando o valor interno é um documento que você quer enviar ao Formatador JSON em vez de continuar decodificando.
- O teste de remoção é propositalmente rigoroso — Só se retira uma camada quando o que sobra é mesmo uma string JSON entre aspas que se lê bem. Texto normal que por acaso mencione \n nunca é removido, por isso a ferramenta não pode estragar texto que sempre foi simples.
- Observe a contagem de camadas — Se indicar menos camadas do que você esperava e o resultado ainda tiver escapes, os que sobram nunca foram válidos — normalmente uma linha de registro editada à mão com uma barra perdida. Execute Escape sobre o resultado para ver exatamente onde deixa de fazer sentido.
As opções num relance
- Envolver o resultado em aspas — Ligado por padrão. O resultado é um literal de string JSON completo, pronto para colar como valor. Desligue para obter só o corpo escapado, para colar entre aspas que já existem no seu código.
- Escapar não-ASCII como \uXXXX — Desligado por padrão. Todo caractere acima de U+007F passa a \uXXXX, por isso o literal fica em ASCII puro. Emojis e outros caracteres fora do plano básico passam a dois escapes, que é o que um analisador espera.
- Escapar as barras — Desligado por padrão. Escreve / como \/, que continua sendo JSON válido e impede que uma tag de fechamento dentro de uma string termine cedo demais um bloco de script HTML.
- Escapar os separadores de linha — Desligado por padrão, e indisponível enquanto o escape de não-ASCII estiver ligado porque já os cobre. Escreve U+2028 e U+2029 como escapes para que o literal possa ser colado em código JavaScript.
- Profundidade do unescape — Automático por padrão. Controla quantas camadas de aninhamento são retiradas. Veja a seção acima.
- Contagens e razão — Cada resultado mostra caracteres de entrada e de saída, bytes de entrada e de saída, e a razão de crescimento — o número que interessa quando o valor tem que caber numa coluna ou num limite de carga.
O que significa cada mensagem de erro
Quando o unescape recusa, nomeia a regra quebrada e dá a linha e a coluna, calculadas por nós a partir da posição no seu texto e não lidas da mensagem em inglês de um analisador. É por isso que a mensagem está no seu idioma e a posição indicada está certa em todos os idiomas.
| Mensagem | Quando acontece | O que fazer |
|---|---|---|
| A string nunca é fechada | O texto tem uma aspa de abertura sem a de fechamento — normalmente um valor cortado por um limite de registro ou uma cópia incompleta. | Acrescente a aspa de fechamento, ou cole o valor inteiro. |
| Sequência de escape desconhecida | Uma barra invertida é seguida de um caractere que o JSON não define, como \q ou um caminho do Windows colado sem duplicar os separadores. | Duplique as barras invertidas, ou use Escape sobre o texto original para produzir um literal correto. |
| Escape \u incompleto | Um \u não é seguido de exatamente quatro dígitos hexadecimais. | Complete os quatro dígitos. \u12 não é válido; \u0012 é. |
| Caractere de controle bruto | Há uma quebra de linha ou uma tabulação reais dentro da string em vez de \n ou \t. É a falha mais comum quando um valor é colado de um terminal. | Em vez disso, use Escape sobre o texto — é exatamente para isso que serve. |
| Conteúdo a mais depois da string | Há duas strings seguidas, como "a" "b", ou algo depois da aspa de fechamento. | Converta um valor por vez, ou junte-os primeiro numa só string. |
| Isso é um documento JSON, não uma string | A entrada é um objeto ou um array. O unescape trabalha sobre um único valor de string. | Envie-o ao Formatador JSON ou ao Validador JSON — há links para ambos na mensagem. |
Limites, velocidade e privacidade
Tudo acontece no seu próprio dispositivo. Não há passo de envio, nem fila num servidor, nem cópia do seu texto em lugar nenhum além da aba que você tem aberta. É também por isso que é rápido: nada precisa viajar.
- Gratuito — Um arquivo por vez, até 10 MB, com todas as opções e todas as profundidades. Colar passa pela mesma verificação, por isso não há nada para contornar.
- Pro — Sem limite fixo de tamanho — até onde o seu dispositivo aguentar — mais até 20 arquivos por vez e todos os resultados num único arquivo ZIP.
- Velocidade — Um documento de 10 MB é escapado em cerca de 22 milissegundos e desescapado em cerca de 21. A conversão roda fora da thread principal, com progresso e um botão Cancelar que realmente para o trabalho em vez de escondê-lo.
- O que nunca é enviado — O seu texto, os nomes dos seus arquivos e os seus resultados. A ferramenta continua funcionando depois que a página carrega, mesmo com a rede desligada, que é a forma mais simples de confirmar isso.
- Formatos que abre — .json, .txt, .log, .ndjson, .jsonl, .md, .csv, .tsv, .xml, .yaml, .yml, .sql, .env e .ini. Todo o resto é recusado no seletor de arquivos, com um link para a ferramenta que o abre: uma planilha vai para Excel para JSON e um documento para Word para texto.
Um documento de 10 MB é escapado em cerca de 22 milissegundos num notebook intermediário, fora da thread principal, para que a página nunca trave.
Perguntas frequentes
Como funciona a ferramenta de escape JSON?
Escolha Escape ou Unescape e cole o texto ou carregue um arquivo. O escape envolve o texto em aspas duplas e escapa aspas, barras invertidas, quebras de linha, tabulações e caracteres de controle para produzir um literal de string JSON válido. O unescape faz o contrário e devolve o texto bruto. O resultado surge ao lado da origem com as contagens, e você pode copiá-lo, baixá-lo ou devolvê-lo à entrada.
Os meus dados estão seguros?
O seu texto não é enviado para lugar nenhum. O escape e o unescape rodam no seu próprio dispositivo, por isso nada é carregado, nada é guardado e nada é registrado — e depois que a página carrega a ferramenta continua funcionando sem nenhuma conexão. Os arquivos que você solta são lidos localmente e liberados quando você esvazia a lista.
Qual é a diferença entre escape e unescape?
O escape converte texto simples num literal de string JSON: acrescenta aspas duplas e escapa os caracteres especiais para que o valor seja seguro dentro de JSON ou de código. O unescape faz o contrário: pega uma string JSON e devolve o texto original, decodificando \n, \t e \" para caracteres reais.
Que caracteres são escapados?
Os que o JSON exige: as aspas duplas passam a \", as barras invertidas a \\, as quebras de linha a \n, os retornos de carro a \r, as tabulações a \t, o retrocesso a \b, o avanço de página a \f, e qualquer outro caractere abaixo de U+0020 passa a \u00XX. Os substitutos isolados também são sempre escapados, porque não têm codificação UTF-8 válida e se perderiam ao salvar o arquivo. Três opções acrescentam \uXXXX para não-ASCII, \/ para as barras e \u2028 / \u2029 para os dois separadores de linha Unicode.
O que espera o Unescape, e o que fazer se falhar?
Aceita uma string JSON com as aspas, como "olá\nmundo", e também um corpo escapado sem elas, como olá\nmundo — o que se obtém ao copiar um valor de um arquivo JSON. Os espaços ao redor são ignorados numa string entre aspas e preservados num corpo simples. Se a entrada não for uma string válida, a ferramenta nomeia a regra quebrada, dá a linha e a coluna e mostra o texto ao redor, com links para o Formatador e o Validador JSON.
Lida com strings duplamente escapadas ou aninhadas?
Sim. Uma linha de registro serializada duas ou três vezes ainda contém \\n e \\\" depois de uma única passagem. Deixe a profundidade em Automático e a ferramenta continua enquanto o resultado for uma string JSON entre aspas, até dez camadas, e depois informa quantas removeu. Defina uma profundidade exata se quiser parar no meio e inspecionar uma camada intermediária.
Por que escapar não-ASCII ou barras?
Escape o não-ASCII como \uXXXX quando o valor tiver que atravessar algo que não seja confiavelmente de 8 bits, ou quando quiser um literal em ASCII puro no controle de versões. Escape as barras quando a string for para dentro de um bloco de script HTML, onde uma tag de fechamento dentro de uma string terminaria a tag cedo demais. Ambas as formas são JSON válido — as opções existem porque às vezes o destino se importa.
O que são U+2028 e U+2029, e por que uma opção para eles?
São o separador de linha e o separador de parágrafo Unicode. São perfeitamente legais sem escape dentro de uma string JSON e, até o ES2019, eram ilegais dentro de um literal de string JavaScript — por isso uma string JSON colada em código JavaScript podia ser um erro de sintaxe apontando para um caractere invisível. A opção os escapa para que o literal possa ser colado em qualquer lugar.
Que tamanho de arquivo aceita, e funciona no celular?
A versão gratuita aceita um arquivo até 10 MB. O Pro remove o limite fixo e vai até onde o seu dispositivo aguentar, aceita até 20 arquivos por vez e entrega todos os resultados num único arquivo ZIP. Colar não tem limite separado: passa pela mesma verificação. Funciona em qualquer navegador moderno em computador, tablet e celular, e os documentos grandes são convertidos fora da thread principal para que a página não trave.
de 65 avaliações
Avalie esta ferramenta
Toque numa estrela — leva um segundo