Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Относится к: SQL Server 2016 (13.x) и более поздних версиях
; Azure SQL Database
,Azure SQL Managed Instance
,Azure Synapse Analytics (только для serverless SQL pool),
SQL аналитический конечный пункт в Microsoft Fabric
; Склад в Microsoft Fabric
,SQL база данных в Microsoft Fabric
В этой статье описывается, как клауза FOR JSON оператора SQL Server SELECT экранирует специальные символы и обозначает символы управления в выходных данных JSON.
В этой статье описывается встроенная поддержка JSON в Microsoft SQL Server. Для общей информации о экранировании и кодировании в формате JSON см. раздел 2.5 JSON RFC.
Экранирование специальных символов
Если исходные данные содержат специальные символы, оператор FOR JSON экранирует их в выходных данных JSON, как показано в следующей таблице. Такое экранирование происходит как в именах свойств, так и в их значениях.
| Специальный знак | Экранированные выходные данные |
|---|---|
Кавычка (") |
\" |
Обратная косая черта (\) |
\\ |
Косая черта (/) |
\/ |
| Backspace | \b |
| Подача формы | \f |
| Новая строка | \n |
| Возврат каретки | \r |
| Горизонтальная вкладка | \t |
Управляющие символы
Если исходные данные содержат символы элемента управления, FOR JSON предложение кодирует их в выходных данных JSON в \u<code> формате, как показано в следующей таблице.
| Управляющий символ | Закодированные выходные данные |
|---|---|
| CHAR(0) | \u0000 |
| CHAR(1) | \u0001 |
| ... | ... |
| CHAR(31) | \u001f |
Example
Ниже приведен пример FOR JSON выходных данных для исходных данных, включающих как специальные символы, так и управляющие символы.
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"
}
]
Связанный контент
- Форматирование результатов запроса в формате JSON с помощью FOR JSON
- SELECT — предложение FOR (Transact-SQL)
- JSON as a bridge between NoSQL and relational worlds (JSON как мост между NoSQL и реляционными решениями)