Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: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 ] )
<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
Return value
Возвращает допустимую строку объекта JSON типа nvarchar(max ).
Дополнительные сведения о выходных данных функции JSON_OBJECT
см. в следующих статьях.
Как FOR JSON преобразует типы данных SQL Server в типы данных JSON
ФункцияJSON_OBJECT
использует правила, описанные в статьеFOR JSON
, для преобразования типов данных SQL в типы JSON в выходных данных объекта JSON.Как FOR JSON экранирует специальные символы и управляющие символы
ФункцияJSON_OBJECT
экранирует специальные знаки и представляет управляющие символы в выходных данных JSON, как описано в статьеFOR JSON
.
Examples
Example 1
В следующем примере возвращается пустой объект JSON.
SELECT JSON_OBJECT();
Result
{}
Example 2
В следующем примере возвращается объект JSON с двумя ключами.
SELECT JSON_OBJECT('name':'value', 'type':1)
Result
{"name":"value","type":1}
Example 3
В следующем примере возвращается объект JSON с одним ключом, так как значение для одного из ключей — NULL
и ABSENT ON NULL
указан параметр.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL)
Result
{"name":"value"}
Example 4
В следующем примере возвращается объект JSON с двумя ключами. Один ключ содержит строку JSON, а другой ключ — массив JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2))
Result
{"name":"value","type":[1,2]}
Example 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"}}
Example 6
В следующем примере возвращается объект JSON с входными данными, указанными в виде переменных или выражений SQL.
DECLARE @id_key nvarchar(10) = N'id',@id_value 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}
Example 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":"sleeping"} |
52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |