Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 (apenas serverless SQL pool)
endpoint de análise SQL no Microsoft Fabric
Armazém de Dados no Microsoft Fabric
Base de dados SQL no Microsoft Fabric
Este artigo descreve como a cláusula FOR JSON de uma instrução do SQL Server SELECT escapa de caracteres especiais e representa caracteres de controle na saída JSON.
Este artigo descreve o suporte interno para JSON no Microsoft SQL Server. Para obter informações gerais sobre escape e codificação em JSON, consulte a Secção 2.5 do RFC JSON .
Fuga de caracteres especiais
Se os dados de origem contiverem caracteres especiais, a cláusula FOR JSON escapará deles na saída JSON com \, conforme mostrado na tabela a seguir. Essa fuga ocorre tanto nos nomes das propriedades quanto em seus valores.
| Caráter especial | Saída escapada |
|---|---|
Aspas (") |
\" |
Barra invertida (\) |
\\ |
Barra (/) |
\/ |
| Backspace | \b |
| Avanço de formulário | \f |
| Nova linha | \n |
| Retorno de carro | \r |
| Tabulação horizontal | \t |
Caracteres de controlo
Se os dados de origem contiverem caracteres de controle, a cláusula FOR JSON os codificará na saída JSON no formato \u<code>, conforme mostrado na tabela a seguir.
| Carácter de controlo | Saída codificada |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Aqui está um exemplo da saída FOR JSON para 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"
}
]