FOR JSON
句の JSON 出力に最上位レベルの要素を 1 つ追加するには、ROOT
オプションを指定します。
ROOT
オプションを指定しない場合、JSON 出力にはルート要素は含まれません。
Examples
次の表は、FOR JSON
オプションの有無に関係なく、ROOT
句の出力を示しています。
次の表の例では、省略可能な RootName 引数が空であることを前提としています。 ルート要素の名前を指定した場合、この値は例で root
値に置き換えられます。
ROOT
オプションを指定しない場合:
{
<<json properties>>
}
[
<<json array elements>>
]
ROOT
オプションを使用します。
{
"root": {
<<json properties>>
}
}
{
"root": [
<< json array elements >>
]
}
FOR JSON
オプションを使用したROOT
句のもう 1 つの例を次に示します。 この例では、省略可能な 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"
}
}]
}
結果 (root 指定なし)
[{
"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 データベース エンジンでの JSON の詳細
組み込みの JSON サポートの視覚的な概要については、次のビデオを参照してください。