Sdílet prostřednictvím


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:

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"}