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:
Bagaimana FOR JSON mengonversi jenis data SQL Server ke jenis data JSON (SQL Server)
Fungsi iniJSON_OBJECT
menggunakan aturan yang dijelaskan dalam artikel iniFOR JSON
untuk mengonversi jenis data SQL ke jenis JSON dalam output objek JSON.Bagaimana FOR JSON lolos karakter khusus dan karakter kontrol (SQL Server)
Fungsi iniJSON_OBJECT
lolos dari karakter khusus dan mewakili karakter kontrol dalam output JSON seperti yang dijelaskan dalam artikel iniFOR JSON
.
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"} |