JSON_OBJECT (Transact-SQL)
Применимо к:База данных Azure SQL SQL Server 2022 (16.x Управляемый экземпляр SQL Azure
Создает текст объекта JSON из нуля или нескольких выражений.
Синтаксис
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
Аргументы
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_OBJECT
см. в следующих статьях.
Преобразование типов данных SQL Server в формат JSON с помощью предложения FOR JSON (SQL Server)
ФункцияJSON_OBJECT
использует правила, описанные в статьеFOR JSON
, для преобразования типов данных SQL в типы JSON в выходных данных объекта JSON.Как FOR JSON экранирует специальные и управляющие символы (SQL Server)
ФункцияJSON_OBJECT
экранирует специальные знаки и представляет управляющие символы в выходных данных JSON, как описано в статьеFOR JSON
.
Возвращаемое значение
Возвращает допустимую строку объекта JSON типа nvarchar(max).
Remarks
Примеры
Пример 1
В следующем примере возвращается пустой объект JSON.
SELECT JSON_OBJECT();
Результат
{}
Пример 2
В следующем примере возвращается объект JSON с двумя ключами.
SELECT JSON_OBJECT('name':'value', 'type':1)
Результат
{"name":"value","type":1}
Пример 3
В следующем примере возвращается объект JSON с одним ключом, так как значение для одного из ключей равно NULL, и указан параметр ABSENT ON NULL.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL)
Результат
{"name":"value"}
Пример 4
В следующем примере возвращается объект JSON с двумя ключами. Один ключ содержит строку JSON, а другой ключ — массив JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2))
Результат
{"name":"value","type":[1,2]}
Пример 5
В следующем примере возвращается объект JSON с двумя ключами. Один ключ содержит строку JSON, а другой ключ — объект JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'))
Результат
{"name":"value","type":{"type_id":1,"name":"a"}}
Пример 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))
Результат
{"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;
Результат
session_id | сведения |
---|---|
51 | {"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22" ,"status":"sleeping"} |
52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по