Pular para o conteudo principal
CuteJSON
↑↓ Navegar Enter Selecionar Esc Fechar

Como escapar e desescapar strings de JSON corretamente

Publicado 2 min de leitura Por Akash Kinkar Pandey

Escapar e o que um documento precisa antes de poder viver dentro de uma string: um valor JSON contendo outro documento JSON, uma linha de log, um argumento de shell, um fixture colado em um arquivo de teste. As regras sao curtas, e esta ferramenta aplica todas.

Usando a ferramenta de escapamento de JSON

Escolha Escapar ou Desescapar, cole seu texto, e pressione Converter. Escapando, voce pode escolher se envolver o resultado em aspas e se escapar tudo acima de ASCII.

Escapando

line1
line2	tab/slash"quote"café

com as opcoes padrao produz:

"line1\nline2\ttab/slash\"quote\"café"

A quebra de linha se torna \n, a tabulacao se torna \t, a aspa e escapada, a barra inclinada e completamente deixada sozinha, e café fica como texto UTF-8.

Por que a barra inclinada e deixada sozinha

JSON aceita \/ como escapamento valido para um / literal, mas nada na especificacao exige isso. O habito de escapar barras inclinadas vem de incorporar JSON dentro de uma tag HTML <script>, onde uma sequence </script> literal terminaria a tag prematuramente. Esse e um problema diferente com uma solucao diferente, especifico para esse contexto de incorporacao, e esta ferramenta nao o aplica por padrao. Desescapar ainda aceita ambas as grafias, ja que um documento escrito por algo que escapar barras inclinadas ainda precisa ser lido corretamente.

Escapar acima de ASCII

Ativar isso tambem converte cada caractere acima da faixa ASCII em um escapamento \u, ponto de codigo por ponto de codigo. O é em café se torna os seis caracteres barra invertida, u, 0, 0, e, 9, entao a string acima termina em caf seguido desse escapamento ao inves da letra em si. Isso e o que voce quer quando o texto escapado tem que cruzar algo que nao e certamente seguro em UTF-8, como um sistema antigo ou um transporte que corrompe codificacoes. Deixe desligado para qualquer coisa que sera lida como UTF-8, ja que a forma escapada e mais dificil de ler sem beneficio.

Fragmentos estao ok

Nenhuma direcao exige que a entrada seja JSON valido por si so. Escapar parte de um documento, um unico valor que voce vai colar em uma string maior, e uma coisa comum de querer, entao a ferramenta funciona com fragmentos e reporta separadamente se o resultado e parseado como JSON completo, como uma nota ao inves de um veredito.

Voltar a todos os posts