適用於: SQL Server 2016(13.x)和更新版本,
Azure SQL Database
Azure SQL 受控實例
Azure Synapse Analytics(僅無伺服器 SQL 資源集區)
在 Microsoft Fabric 中的 SQL 分析端點
在 Microsoft Fabric 中的 Warehouse
若要將單一最上層元素新增至 FOR JSON
子句的 JSON 輸出,請指定 ROOT
選項。
如果您未指定 ROOT
選項,JSON 輸出就不會包含根元素。
範例
下表顯示 FOR JSON
子句在有 ROOT
選項和沒有 ROOT
選項時的輸出。
下表中的範例假設選擇性 RootName 引數是空的。 如果您提供根元素的名稱,這個值會取代範例中的值 root
。
沒有 [ROOT
] 選項:
{
<<json properties>>
}
[
<<json array elements>>
]
在設定為 [ROOT
] 的情況下:
{
"root": {
<<json properties>>
}
}
{
"root": [
<< json array elements >>
]
}
以下是另一個具有 FOR JSON
選項的 ROOT
子句範例。 這個範例會指定選擇性 RootName
自變數的值。
查詢
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH, ROOT('info')
結果
{
"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 支援的視覺效果簡介,請參閱下列影片: