如何在SQL Server中为生成的JSON添加多个根节点?
解决方案:添加额外根节点到SQL生成的JSON
要实现你需要的JSON结构,可通过嵌套子查询的方式,在外层查询中添加额外根字段,具体SQL代码如下:
SELECT 'iwantthistobeincluded' AS [type], ( SELECT [cola] AS [source.name], [colb] AS [destination.name] FROM [db].[dbo].[table] FOR JSON PATH ) AS [connection] FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
逻辑说明:
- 外层查询直接定义
type字段并赋值你需要的固定字符串 - 内层子查询保留原有的字段映射逻辑,但移除
ROOT('connection')参数,将内层生成的JSON数组作为外层的connection属性 - 最后使用
WITHOUT_ARRAY_WRAPPER参数,确保最终输出为单个JSON对象,而非默认的数组格式
执行上述代码后,生成的JSON结构将完全匹配你的预期:
{ "type": "iwantthistobeincluded", "connection": [ { "source": { "name": "val1" }, "destination": { "name": "val2" } }, { "source": { "name": "val3" }, "destination": { "name": "val4" } } ] }
内容的提问来源于stack exchange,提问作者uba2012
相关产品推荐
相关产品推荐

