Bagikan melalui


JSON_OBJECT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceTitik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Sintaks JSON_OBJECT membangun teks objek JSON dari nol atau lebih ekspresi.

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

Ekspresi karakter yang menentukan nilai nama kunci JSON.

value_expression

Ekspresi yang menentukan nilai kunci JSON.

json_null_clause

Dapat digunakan untuk mengontrol perilaku JSON_OBJECT fungsi ketika value_expression adalah NULL. Opsi NULL ON NULL mengonversi nilai SQL NULL menjadi nilai null JSON saat menghasilkan nilai kunci JSON. Opsi ABSENT ON NULL akan menghilangkan seluruh kunci jika nilainya adalah NULL. Pengaturan default untuk opsi ini adalah NULL ON NULL.

Mengembalikan nilai

Mengembalikan string objek JSON yang valid dari jenis nvarchar(maks ). RETURNING json Jika opsi disertakan maka objek JSON dikembalikan sebagai jenis json.

Untuk informasi selengkapnya tentang apa yang Anda lihat dalam output JSON_OBJECT fungsi, lihat artikel berikut ini:

Article Description
Cara FOR JSON mengonversi jenis data SQL Server ke jenis data JSON Fungsi ini JSON_OBJECT menggunakan aturan yang dijelaskan dalam artikel ini FOR JSON untuk mengonversi jenis data SQL ke jenis JSON dalam output objek JSON.
Bagaimana FOR JSON meloloskan karakter khusus dan karakter kontrol Fungsi ini JSON_OBJECT lolos dari karakter khusus dan mewakili karakter kontrol dalam output JSON seperti yang dijelaskan dalam artikel ini FOR JSON .

Examples

Contoh 1

Contoh berikut mengembalikan objek JSON kosong.

SELECT JSON_OBJECT();

Result

{}

Contoh 2

Contoh berikut mengembalikan objek JSON dengan dua kunci.

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

Result

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

Contoh 3

Contoh berikut mengembalikan objek JSON dengan satu kunci karena nilai untuk salah satu kunci adalah NULL dan ABSENT ON NULL opsi ditentukan.

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

Result

{"name":"value"}

Contoh 4

Contoh berikut mengembalikan objek JSON dengan dua kunci. Satu kunci berisi string JSON dan kunci lain berisi array JSON.

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

Result

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

Contoh 5

Contoh berikut mengembalikan objek JSON dengan dua kunci. Satu kunci berisi string JSON dan kunci lain berisi objek JSON.

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

Result

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

Contoh 6

Contoh berikut mengembalikan objek JSON dengan input yang ditentukan sebagai variabel atau ekspresi 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}

Contoh 7

Contoh berikut mengembalikan objek JSON per baris dalam kueri.

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

Contoh 8

Contoh berikut mengembalikan objek JSON sebagai jenis json .

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

Result

{"a":1}