將根節點與根選項加入至 JSON 輸出 (SQL Server)

適用範圍: 是SQL Server 2016 (13.x) 及更新版本

若要新增最上層的單一項目到 FOR JSON 子句的 JSON 輸出,請指定 ROOT 選項。

如不指定 ROOT 選項,則 JSON 輸出不會包含根項目。

範例

下列資料表顯示包含及不含 ROOT 選項的 FOR JSON 子句輸出。

下表中的範例假設選擇性 RootName 引數是空的。 如果您提供根項目的名稱,此值會取代 範例中的值。

不含 ROOT 選項

{  
   <<json properties>>  
}  
[  
   <<json array elements>>  
]  

包含 ROOT 選項

{   
  "root": {  
   <<json properties>>  
 }  
}  
{   
  "root": [  
   << json array elements >>  
  ]  
}  

以下是另一種包含 ROOT 選項的 FOR JSON 子句範例。 這個範例會指定選擇性 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 Server 和 Azure SQL Database 中的 JSON

Microsoft 影片

如需 SQL Server 和 Azure SQL Database 中內建 JSON 支援的觀看式簡介,請參閱下列影片:

另請參閱

FOR 子句 (Transact-SQL)