Menggunakan OPENJSON dengan Skema Eksplisit (SQL Server)
Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (hanya kumpulan SQL tanpa server)
Gunakan OPENJSON dengan skema eksplisit untuk mengembalikan tabel yang diformat seperti yang Anda tentukan dalam klausa WITH.
Berikut adalah beberapa contoh yang menggunakan OPENJSON dengan skema eksplisit. Untuk informasi selengkapnya dan contoh lainnya, lihat OPENJSON (Transact-SQL).
Contoh - Gunakan klausa WITH untuk memformat output
Kueri berikut mengembalikan hasil yang diperlihatkan dalam tabel berikut. Perhatikan bagaimana klausul AS JSON menyebabkan nilai dikembalikan sebagai objek JSON alih-alih nilai skalar di col5 dan array_element.
DECLARE @json NVARCHAR(MAX) =
N'{"someObject":
{"someArray":
[
{"k1": 11, "k2": null, "k3": "text"},
{"k1": 21, "k2": "text2", "k4": { "data": "text4" }},
{"k1": 31, "k2": 32},
{"k1": 41, "k2": null, "k4": { "data": false }}
]
}
}'
SELECT * FROM
OPENJSON(@json, N'lax $.someObject.someArray')
WITH ( k1 int,
k2 varchar(100),
col3 varchar(6) N'$.k3',
col4 varchar(10) N'lax $.k4.data',
col5 nvarchar(MAX) N'lax $.k4' AS JSON,
array_element nvarchar(MAX) N'$' AS JSON
)
Hasil
k1 | k2 | col3 | col4 | col5 | array_element |
---|---|---|---|---|---|
11 | NULL | "teks" | NULL | NULL | {"k1": 11, "k2": null, "k3": "text"} |
21 | "text2" | NULL | "text4" | { "data": "text4" } | {"k1": true, "k2": "text2", "k4": { "data": "text4" } } |
31 | "32" | NULL | NULL | NULL | {"k1": 31, "k2": 32 } |
41 | NULL | NULL | salah | { "data": false } | {"k1": 41, "k2": null, "k4": { "data": false } } |
Contoh - Muat JSON ke dalam tabel SQL Server.
Contoh berikut memuat seluruh objek JSON ke dalam tabel SQL Server.
DECLARE @json NVARCHAR(MAX) = '{
"id" : 2,
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"dateOfBirth": "2015-03-25T12:00:00",
"spouse": null
}';
INSERT INTO Person
SELECT *
FROM OPENJSON(@json)
WITH (id int,
firstName nvarchar(50), lastName nvarchar(50),
isAlive bit, age int,
dateOfBirth datetime2, spouse nvarchar(50))
Pelajari selengkapnya tentang JSON di SQL Server dan Azure SQL Database
Video Microsoft
Untuk pengenalan visual dukungan JSON bawaan di SQL Server dan Azure SQL Database, lihat video berikut ini:
Lihat Juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk