次の方法で共有


ROOT オプションを使用して JSON 出力にルート ノードを追加する

適用対象:SQL Server 2016 (13.x) 以降のバージョンAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (サーバーレス SQL プールのみ)Microsoft Fabric の SQL 分析エンドポイント、Microsoft Fabric のウェアハウス、Microsoft Fabric プレビューの SQL データベース

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 サポートの視覚的な概要については、次のビデオを参照してください。