Sdílet prostřednictvím


JSON_OBJECT (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLKoncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Syntaxe JSON_OBJECT vytvoří text objektu JSON z nuly nebo více výrazů.

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

Výraz znaku, který definuje hodnotu názvu klíče JSON.

value_expression

Výraz, který definuje hodnotu klíče JSON.

json_null_clause

Lze použít k řízení chování JSON_OBJECT funkce při value_expression je NULL. Tato možnost NULL ON NULL převede hodnotu SQL NULL na hodnotu NULL JSON při generování hodnoty klíče 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 typu nvarchar(max ). Pokud je tato RETURNING json možnost zahrnutá, vrátí se objekt JSON jako typ JSON .

Další informace o tom, co vidíte ve výstupu funkce JSON_OBJECT, najdete v následujících článcích:

Article Description
Jak FOR JSON převádí datové typy SQL Serveru na datové typy JSON Funkce JSON_OBJECT používá pravidla popsaná v tomto článku FOR JSON k převodu datových typů SQL na typy JSON ve výstupu objektu JSON.
Jak PRO JSON řídicí znaky a řídicí znaky Funkce JSON_OBJECT řídicími znaky a představuje řídicí znaky ve výstupu JSON, jak je popsáno v tomto FOR JSON článku.

Examples

Příklad 1

Následující příklad vrátí prázdný objekt JSON.

SELECT JSON_OBJECT();

Result

{}

Příklad 2

Následující příklad vrátí objekt JSON se dvěma klíči.

SELECT JSON_OBJECT('name':'value', 'type':1);

Result

{"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);

Result

{"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));

Result

{"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'));

Result

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

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;

Result

session_id info
51 {"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22","stav":"spící"}
52 {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"}

Příklad 8

Následující příklad vrátí objekt JSON jako typ JSON .

SELECT JSON_OBJECT("a":1 RETURNING json);

Result

{"a":1}