使用 ROOT 选项将根节点添加到 JSON 输出中

适用于: SQL Server 2016(13.x)及更高版本 Azure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics(仅限无服务器 SQL 池)Microsoft FabricWarehouse 中的 SQL 分析终结点Microsoft Fabric

若要将单个顶级元素添加到 FOR JSON 子句的 JSON 输出,请指定 ROOT 选项。

如果未指定 ROOT 选项,则 JSON 输出不包括根元素。

示例

下表显示了FOR JSON 子句在使用和不使用 ROOT 选项时的输出。

下表中的示例假定可选自变量 RootName 为空。 如果为根元素提供名称,此值将替换示例中的值 root

不使用 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')

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 数据库引擎中的 JSON

有关内置 JSON 支持的视觉简介,请参阅以下视频: