You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

T-SQL FOR JSON如何输出带嵌套value属性的JSON结构

当前写法的问题

你使用的FOR JSON AUTO模式默认会按照查询返回的列值做1:1平铺映射,不会自动将基础类型的列值包装为带value属性的嵌套对象,这是该模式的预设行为,不存在语法错误,但无法满足自定义嵌套结构的需求。

官方推荐最佳实践

不需要做文本字符串拼接,直接使用FOR JSON PATH模式即可实现需求,这是SQL Server原生支持的JSON结构自定义方案,可读性、可维护性更强,也能自动处理特殊字符转义等字符串拼接容易遗漏的边界问题。
你只需要通过点号分隔的列别名,明确指定每个值的嵌套路径即可,参考代码如下:

SELECT
    Field1 AS [Field1.value],
    Field2 AS [Field2.value]
FROM @header 
INNER JOIN @line ON @header.Id = @Line.Id 
FOR JSON PATH

上述写法会直接生成你期望的结构:每个字段对应一个对象,字段值存放在对象的value属性下。

补充说明:如果后续需要实现更复杂的多层JSON嵌套,FOR JSON PATH的可控性也远高于FOR JSON AUTO,自定义JSON结构的场景优先选择PATH模式。

内容的提问来源于stack exchange,提问作者Anthony Horne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 17:30:50