SQL Server 2016 - 为啥我需要为我的选择语句指定一个根元素
Posted
技术标签:
【中文标题】SQL Server 2016 - 为啥我需要为我的选择语句指定一个根元素【英文标题】:SQL Server 2016 - Why would I need to specify a root element for my select statementSQL Server 2016 - 为什么我需要为我的选择语句指定一个根元素 【发布时间】:2020-12-11 23:13:24 【问题描述】:为什么我需要在我的选择语句中指定一个根元素?
我在下面的代码中谈论的是ROOT('data')
。
// GET api/Product
[HttpGet]
public async Task Get()
await sqlQuery.Sql(
@"select ProductID, Name, Color, Price, Quantity, JSON_VALUE(Data, '$.MadeIn') as MadeIn, JSON_QUERY(Tags) as Tags
from Product
FOR JSON PATH, ROOT('data')"
).Stream(Response.Body, EMPTY_PRODUCTS_ARRAY);
【问题讨论】:
【参考方案1】:可选的 ROOT('array name') 为 FOR JSON PATH 指定的数组命名。 ROOT 与 WITHOUT_ARRAY_WRAPPER 互斥,只能指定 1。使用 ROOT('data') 查询的结果将类似于
"data": [ ... ]
如果指定 WITHOUT_ARRAY_WRAPPER,则生成的 JSON 将如下所示
"field1": "value", ...
【讨论】:
以上是关于SQL Server 2016 - 为啥我需要为我的选择语句指定一个根元素的主要内容,如果未能解决你的问题,请参考以下文章
如何将 sql server 链接到 Microsoft Access?