Bagikan melalui


JSON_OBJECT (T-SQL)

Berlaku untuk: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance

Membuat teks objek JSON dari nol atau lebih ekspresi.

Sintaks

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

Argumen

json_key_name

Adalah ekspresi karakter yang menentukan nilai nama kunci JSON.

value_expression Adalah ekspresi yang menentukan nilai kunci JSON.

json_null_clause

Dapat digunakan untuk mengontrol perilaku fungsi JSON_OBJECT saat 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.

Nilai hasil

Mengembalikan string objek JSON yang valid dari jenis nvarchar(maks ).

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

Contoh

Contoh 1

Contoh berikut mengembalikan objek JSON kosong.

SELECT JSON_OBJECT();

Hasil

{}

Contoh 2

Contoh berikut mengembalikan objek JSON dengan dua kunci.

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

Hasil

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

Hasil

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

Hasil

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

Hasil

{"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 nvarchar(10) = N'id',@id_value nvarchar(64) = NEWID();
SELECT JSON_OBJECT('user_name':USER_NAME(), @id_key:@id_value, 'sid':(SELECT @@SPID))

Hasil

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

Hasil

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