Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (somente pool de SQL sem servidor)
endpoint de análise de SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Esse artigo descreve como a cláusula FOR JSON de uma instrução SELECT do SQL Server ignora os caracteres especiais e representa os caracteres de controle na saída JSON.
Esse artigo descreve o suporte interno para JSON no Microsoft SQL Server. Para obter informações gerais sobre como fazer o escape e a codificação em JSON, veja a Seção 2.5 da RFC do JSON.
Ignorar os caracteres especiais
Se os dados de origem tiverem caracteres especiais, a cláusula FOR JSON os ignorará na saída JSON com \, conforme mostrado na tabela a seguir. Este escape ocorre nos nomes das propriedades e em seus valores.
| Caractere especial | Saída com escape |
|---|---|
Aspas (") |
\" |
Barra invertida (\) |
\\ |
Barra (/) |
\/ |
| Backspace | \b |
| Avanço de página | \f |
| Nova linha | \n |
| Retorno de carro | \r |
| Guia horizontal | \t |
Caracteres de controle
Se os dados de origem tiverem caracteres de controle, a cláusula FOR JSON fará a codificação na saída JSON no formato \u<code>, conforme mostrado na tabela a seguir.
| Caractere de controle | Saída codificada |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Aqui está um exemplo da saída FOR JSON para os dados de origem que inclui caracteres especiais e caracteres de controle.
Query:
SELECT 'VALUE\ /
"' AS [KEY\/"],
CHAR(0) AS '0',
CHAR(1) AS '1',
CHAR(31) AS '31'
FOR JSON PATH;
Result:
[
{
"KEY\\\/\"": "VALUE\\ \/\r\n \"",
"0": "\u0000",
"1": "\u0001",
"31": "\u001f"
}
]