我知道如何使Json脱离SQL Server,包括根节点。
SELECT 'bar' AS [foo]
FOR JSON PATH, ROOT('items');
收益
{
"items": [
{"foo": "bar"}
]
}
但是我希望另一个根节点包装items
,因为我必须遵循一种有效地具有嵌套根节点的规定格式。
{
"baz": {
"items": [
{"foo": "bar"}
]
}
}
我该如何实现?是使用子选择的唯一方法吗?
使用
SELECT
(
SELECT 'bar' AS [foo]
FOR JSON PATH, ROOT ('items')
) AS [baz]
FOR JSON PATH;
收益
[
{
"baz": {
"items": [
{"foo": "bar"}
]
}
}
]
在此之后,我可以去除外侧的括号。
还有另一种更容易实现这一目标的方法吗?
答案 0 :(得分:1)
比您容易。使用WITHOUT_ARRAY_WRAPPER时,无需去除外部括号:
SELECT
(
SELECT 'bar' AS [foo]
FOR JSON PATH, ROOT ('items')
) AS [baz]
FOR JSON PATH,WITHOUT_ARRAY_WRAPPER;