Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureКонечная точка аналитики SQL в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Синтаксис JSON_OBJECT создает текст объекта JSON из нуля или нескольких выражений.
Syntax
JSON_OBJECT ( [ <json_key_value> [ , ...n ] ] [ json_null_clause ] [ RETURNING json ] )
<json_key_value> ::= json_key_name : value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Arguments
json_key_name
Символьное выражение, определяющее значение имени ключа JSON.
value_expression
Выражение, определяющее значение ключа JSON.
json_null_clause
Можно использовать для управления поведением JSON_OBJECT функции при value_expression NULL.
NULL ON NULL Параметр преобразует значение SQL NULL в значение JSON NULL при создании значения ключа JSON. Если значение равно ABSENT ON NULLзначению, параметр NULL опустит весь ключ. Параметр по умолчанию для этого параметра.NULL ON NULL
Возвращаемое значение
Возвращает допустимую строку объекта JSON типа nvarchar(max ).
RETURNING json Если параметр включен, объект JSON возвращается в виде типа JSON.
Дополнительные сведения о выходных данных функции JSON_OBJECT см. в следующих статьях.
| Article | Description |
|---|---|
| Как FOR JSON преобразует типы данных SQL Server в типы данных JSON | Функция JSON_OBJECT использует правила, описанные в статье FOR JSON, для преобразования типов данных SQL в типы JSON в выходных данных объекта JSON. |
| Как FOR JSON экранирует специальные символы и управляющие символы | Функция JSON_OBJECT экранирует специальные знаки и представляет управляющие символы в выходных данных JSON, как описано в статье FOR JSON. |
Examples
Пример 1
В следующем примере возвращается пустой объект JSON.
SELECT JSON_OBJECT();
Result
{}
Пример 2
В следующем примере возвращается объект JSON с двумя ключами.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"name":"value","type":1}
Пример 3
В следующем примере возвращается объект JSON с одним ключом, так как значение для одного из ключей — NULL и ABSENT ON NULL указан параметр.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);
Result
{"name":"value"}
Пример 4
В следующем примере возвращается объект JSON с двумя ключами. Один ключ содержит строку JSON, а другой ключ — массив JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2));
Result
{"name":"value","type":[1,2]}
Пример 5
В следующем примере возвращается объект JSON с двумя ключами. Один ключ содержит строку JSON, а другой ключ — объект JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'));
Result
{"name":"value","type":{"type_id":1,"name":"a"}}
Пример 6
В следующем примере возвращается объект JSON с входными данными, указанными в виде переменных или выражений SQL.
DECLARE @id_key AS NVARCHAR (10) = N'id', @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_OBJECT('user_name':USER_NAME(), @id_key:@id_value, 'sid':(SELECT @@SPID));
Result
{"user_name":"dbo","id":"E2CBD8B4-13C1-4D2F-BFF7-E6D722F095FD","sid":63}
Пример 7
В следующем примере возвращается объект JSON для каждой строки в запросе.
SELECT s.session_id,
JSON_OBJECT('security_id':s.security_id, 'login':s.login_name, 'status':s.status) AS info
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;
Result
session_id |
info |
|---|---|
| 51 |
{"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22","status":"спящий"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Пример 8
В следующем примере возвращается объект JSON в виде типа JSON .
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}