Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi
yang lebih baru: Azure SQL Database
,Azure SQL Managed Instance,
Azure Synapse Analytics (hanya kumpulan SQL tanpa server)
Titik akhir analitik SQL di Microsoft Fabric
Warehouse di database Microsoft FabricSQL di Microsoft Fabric
Gunakan OPENJSON dengan skema eksplisit untuk mengembalikan tabel yang diformat seperti yang Anda tentukan dalam WITH klausa.
Berikut adalah beberapa contoh yang menggunakan OPENJSON dengan skema eksplisit. Untuk informasi selengkapnya, lihat OPENJSON (Transact-SQL).
Contoh - Gunakan klausa WITH untuk memformat output
Kueri berikut mengembalikan hasil yang diperlihatkan dalam tabel berikut. Perhatikan bagaimana klausa AS JSON menyebabkan nilai dikembalikan sebagai objek JSON alih-alih nilai skalar dalam 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
)
Results
| k1 | k2 | col3 | col4 | col5 | array_element |
|---|---|---|---|---|---|
| 11 | NULL | "text" | NULL | NULL | {"k1": 11, "k2": null, "k3": "teks"} |
| 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 | false | { "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 Database Engine
Untuk pengenalan visual dukungan JSON bawaan, lihat video berikut ini: