JSON_OBJECT (Transact-SQL)
platí pro:SQL ServerAzure SQL Databasekoncový bod služby Azure SQL Managed InstanceSQL Analytics ve službě Microsoft FabricWarehouse v Microsoft Fabric
Vytvoří text objektu JSON z nulových nebo více výrazů.
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
Argumenty
json_key_name
Je výraz znaku, který definuje hodnotu názvu klíče JSON.
value_expression Je výraz, který definuje hodnotu klíče JSON.
json_null_clause
Lze použít k řízení chování funkce JSON_OBJECT, když je value_expression NULL
. Možnost NULL ON NULL
při generování hodnoty klíče JSON převede hodnotu SQL NULL
na hodnotu NULL JSON. Možnost ABSENT ON NULL
vynechá celý klíč, pokud je hodnota NULL
. Výchozí nastavení této možnosti je NULL ON NULL
.
Návratová hodnota
Vrátí platný řetězec objektu JSON nvarchar(max) typu.
Další informace o tom, co vidíte ve výstupu funkce JSON_OBJECT
, najdete v následujících článcích:
Způsob převodu datových typů SQL Serveru na datové typy JSON (SQL Server)
FunkceJSON_OBJECT
používá pravidla popsaná v tomto článkuFOR JSON
k převodu datových typů SQL na typy JSON ve výstupu objektu JSON.Jak pro JSON řídicí znaky a řídicí znaky (SQL Server)
FunkceJSON_OBJECT
řídicími znaky a představuje řídicí znaky ve výstupu JSON, jak je popsáno v tomtoFOR JSON
článku.
Příklady
Příklad 1
Následující příklad vrátí prázdný objekt JSON.
SELECT JSON_OBJECT();
výsledek
{}
Příklad 2
Následující příklad vrátí objekt JSON se dvěma klíči.
SELECT JSON_OBJECT('name':'value', 'type':1)
výsledek
{"name":"value","type":1}
Příklad 3
Následující příklad vrátí objekt JSON s jedním klíčem, protože hodnota pro jeden z klíčů je NULL
a je zadána možnost ABSENT ON NULL
.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL)
výsledek
{"name":"value"}
Příklad 4
Následující příklad vrátí objekt JSON se dvěma klíči. Jeden klíč obsahuje řetězec JSON a druhý klíč obsahuje pole JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2))
výsledek
{"name":"value","type":[1,2]}
Příklad 5
Následující příklad vrátí objekt JSON se dvěma klíči. Jeden klíč obsahuje řetězec JSON a druhý klíč obsahuje objekt JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'))
výsledek
{"name":"value","type":{"type_id":1,"name":"a"}}
Příklad 6
Následující příklad vrátí objekt JSON se vstupy zadanými jako proměnné nebo výrazy 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))
výsledek
{"user_name":"dbo","id":"E2CBD8B4-13C1-4D2F-BFF7-E6D722F095FD","sid":63}
Příklad 7
Následující příklad vrátí objekt JSON na řádek v dotazu.
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;
výsledek
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"} |