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 mempertahankan kontrol penuh atas output klausa FOR JSON, tentukan opsi PATH.
mode PATH memungkinkan Anda membuat objek pembungkus dan properti kompleks sarang. Hasilnya diformat sebagai array objek JSON.
Alternatifnya adalah menggunakan opsi AUTO untuk memformat output secara otomatis berdasarkan struktur pernyataan SELECT.
- Untuk informasi selengkapnya tentang opsi
AUTO, lihat Format keluaran JSON secara otomatis dengan mode OTOMATIS. - Untuk gambaran umum kedua opsi, lihat Memformat hasil kueri sebagai JSON dengan FOR JSON.
Berikut adalah beberapa contoh klausa FOR JSON dengan opsi PATH. Format hasil berlapis dengan menggunakan nama kolom yang dipisahkan titik atau dengan menggunakan kueri berlapis, seperti yang ditunjukkan dalam contoh berikut. Secara default, nilai null tidak disertakan dalam output FOR JSON.
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.
Contoh - Nama kolom yang dipisahkan titik
Kueri berikut memformat lima baris pertama dari tabel AdventureWorks Person sebagai JSON.
Klausa FOR JSON PATH menggunakan alias kolom atau nama kolom untuk menentukan nama kunci dalam output JSON. Jika alias berisi titik-titik, opsi PATH membuat objek berlapis.
Query
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH
Result
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sanchez",
"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.",
"MiddleName": "A"
}
}]
Contoh - Beberapa tabel
Jika Anda mereferensikan lebih dari satu tabel dalam kueri, FOR JSON PATH menumpuk setiap kolom menggunakan aliasnya. Kueri berikut membuat satu objek JSON per pasangan (OrderHeader, OrderDetails) yang bergabung dalam kueri.
Query
SELECT TOP 2 H.SalesOrderNumber AS 'Order.Number',
H.OrderDate AS 'Order.Date',
D.UnitPrice AS 'Product.Price',
D.OrderQty AS 'Product.Quantity'
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON PATH
Result
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
Pelajari selengkapnya tentang JSON di SQL Database Engine
Untuk pengenalan visual dukungan JSON bawaan, lihat video berikut ini: