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 Microsoft Fabric
SQL database di Microsoft Fabric
Untuk memformat output klausa FOR JSON secara otomatis berdasarkan struktur pernyataan SELECT, tentukan opsi AUTO.
Saat Anda menentukan opsi AUTO, format output JSON secara otomatis ditentukan berdasarkan urutan kolom dalam daftar SELECT dan tabel sumbernya. Anda tidak dapat mengubah format ini.
Alternatifnya adalah menggunakan opsi PATH untuk mempertahankan kontrol atas output.
- Untuk informasi selengkapnya tentang opsi
PATH, lihat Format Output JSON Berlapis dengan Mode PATH. - Untuk gambaran umum kedua opsi, lihat Memformat hasil kueri sebagai JSON dengan FOR JSON.
Kueri yang menggunakan opsi FOR JSON AUTO harus memiliki klausa FROM.
Berikut adalah beberapa contoh klausa FOR JSON dengan opsi AUTO.
Azure Data Studio adalah editor kueri yang direkomendasikan untuk kueri JSON karena memformat hasil JSON secara otomatis (seperti yang terlihat dalam artikel ini) alih-alih menampilkan string datar.
Examples
Contoh 1
Query
Saat kueri hanya mereferensikan satu tabel, hasil klausa FOR JSON AUTO mirip dengan hasil FOR JSON PATH. Dalam hal ini, FOR JSON AUTO tidak membuat objek berlapis. Satu-satunya perbedaan adalah bahwa FOR JSON AUTO menghasilkan alias yang dipisahkan titik (misalnya, Info.MiddleName dalam contoh berikut) sebagai kunci dengan titik, bukan sebagai objek berlapis.
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON AUTO
Result
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"Info.MiddleName": "J"
}, {
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info.MiddleName": "Lee"
}, {
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
}, {
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
}, {
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info.Title": "Ms.",
"Info.MiddleName": "A"
}]
Contoh 2
Query
Saat Anda menggabungkan tabel, kolom dalam tabel pertama dihasilkan sebagai properti objek akar. Kolom dalam tabel kedua dihasilkan sebagai properti objek berlapis. Nama tabel atau alias tabel kedua (misalnya, D dalam contoh berikut) digunakan sebagai nama array berlapis.
SELECT TOP 2 SalesOrderNumber,
OrderDate,
UnitPrice,
OrderQty
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON AUTO
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO43659",
"D": [{
"UnitPrice": 34.40
}, {
"UnitPrice": 134.24,
"OrderQty": 5
}]
}]
Contoh 3
Query
Alih-alih menggunakan FOR JSON AUTO, Anda dapat menumpuk subkueri FOR JSON PATH dalam pernyataan SELECT, seperti yang ditunjukkan dalam contoh berikut. Contoh ini menghasilkan hasil yang sama dengan contoh sebelumnya.
SELECT TOP 2
SalesOrderNumber,
OrderDate,
(SELECT UnitPrice, OrderQty
FROM Sales.SalesOrderDetail AS D
WHERE H.SalesOrderID = D.SalesOrderID
FOR JSON PATH) AS D
FROM Sales.SalesOrderHeader AS H
FOR JSON PATH
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO4390",
"D": [{
"UnitPrice": 24.99
}]
}]
Pelajari selengkapnya tentang JSON di SQL Database Engine
Untuk pengenalan visual dukungan JSON bawaan, lihat video berikut ini: