Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance
Azure SQLKoncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databá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}