Megosztás a következőn keresztül:


JSON_OBJECT (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A JSON_OBJECT szintaxis JSON-objektumszöveget hoz létre nulla vagy több kifejezésből.

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

A JSON-kulcs nevének értékét meghatározó karakterkifejezés.

value_expression

A JSON-kulcs értékét meghatározó kifejezés.

json_null_clause

A függvény viselkedésének JSON_OBJECT szabályozására használható, ha value_expression van NULL. A beállítás NULL ON NULL az SQL-értéket NULL JSON null értékké alakítja a JSON-kulcs értékének létrehozásakor. A ABSENT ON NULL lehetőség kihagyja a teljes kulcsot, ha az érték NULL. Ennek a beállításnak az alapértelmezett beállítása a NULL ON NULL.

Visszaadott érték

Egy érvényes , nvarchar(max) típusú JSON-objektumsztringet ad vissza. Ha a beállítás szerepel a RETURNING json beállításban, a JSON-objektum JSON-típusként lesz visszaadva.

A JSON_OBJECT függvény kimenetében megjelenő információkról az alábbi cikkekben talál további információt:

Cikk Description
Hogyan konvertálja a JSON az SQL Server-adattípusokat JSON-adattípusokká? A JSON_OBJECT függvény az ebben a FOR JSON cikkben leírt szabályok használatával konvertálja az SQL-adattípusokat JSON-típusokká a JSON-objektum kimenetében.
Hogyan kezeli az FOR JSON a speciális és vezérlő karaktereket A JSON_OBJECT függvény feloldja a speciális karaktereket, és a JSON-kimenet vezérlőkarakterekét jelöli a jelen FOR JSON cikkben leírtak szerint.

Examples

1. példa

Az alábbi példa egy üres JSON-objektumot ad vissza.

SELECT JSON_OBJECT();

Result

{}

2. példa

Az alábbi példa egy JSON-objektumot ad vissza két kulccsal.

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

Result

{"name":"value","type":1}

3. példa

Az alábbi példa egy JSON-objektumot ad vissza egy kulccsal, mivel az egyik kulcs értéke NULL, és meg van adva a ABSENT ON NULL beállítás.

SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);

Result

{"name":"value"}

4. példa

Az alábbi példa egy JSON-objektumot ad vissza két kulccsal. Az egyik kulcs tartalmaz egy JSON-sztringet, egy másik kulcs pedig egy JSON-tömböt.

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

Result

{"name":"value","type":[1,2]}

5. példa

Az alábbi példa egy kétkulcsos JSON-objektumot ad vissza. Az egyik kulcs tartalmaz egy JSON-sztringet, egy másik kulcs pedig egy JSON-objektumot.

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

Result

{"name":"value","type":{"type_id":1,"name":"a"}}

6. példa

Az alábbi példa egy JSON-objektumot ad vissza változóként vagy SQL-kifejezésként megadott bemenetekkel.

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}

7. példa

Az alábbi példa egy JSON-objektumot ad vissza soronként a lekérdezésben.

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""status":"sleeping"}
52 {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"}

8. példa

Az alábbi példa egy JSON-objektumot ad vissza JSON-típusként .

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

Result

{"a":1}