適用於:SQL Server 2016 (13.x)及以後版本
Azure SQL 資料庫
Azure SQL Managed Instance
Azure Synapse Analytics(僅限 serverless SQL pool 使用)
Microsoft Fabric 中的 SQL Analytics 端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
若要將單一最上層元素新增至 FOR JSON 子句的 JSON 輸出,請指定 ROOT 選項。
如果您未指定 ROOT 選項,JSON 輸出就不會包含根元素。
Examples
下表顯示 FOR JSON 子句在有 ROOT 選項和沒有 ROOT 選項時的輸出。
下表中的範例假設選擇性 RootName 引數是空的。 如果您提供根元素的名稱,這個值會取代範例中的值 root。
沒有 [ROOT] 選項:
{
<<json properties>>
}
[
<<json array elements>>
]
在設定為 [ROOT] 的情況下:
{
"root": {
<<json properties>>
}
}
{
"root": [
<< json array elements >>
]
}
以下是另一個具有 FOR JSON 選項的 ROOT 子句範例。 這個範例會指定選擇性 RootName 自變數的值。
Query
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH, ROOT('info')
Result
{
"info": [{
"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.",
"MiddleName": "A"
}
}]
}
結果 (不含根)
[{
"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.",
"MiddleName": "A"
}
}]
深入瞭解 SQL Database Engine 中的 JSON
如需內建 JSON 支援的視覺效果簡介,請參閱下列影片: