如何使用FOR JSON PATH将多行数据分别输出为独立JSON行
实现每行输出独立JSON对象的方法
完全可以实现,只需要对表中的每一行单独生成JSON,并去掉默认的数组包裹,就能让每行数据对应一个独立的JSON对象行。
具体实现方案
可以在子查询中对单行数据应用FOR JSON PATH,同时添加WITHOUT_ARRAY_WRAPPER选项来移除数组格式:
SELECT ( SELECT * FROM someTable AS t WHERE t.id = main.id -- 通过主键/唯一标识关联当前行 FOR JSON PATH, WITHOUT_ARRAY_WRAPPER ) AS row_json FROM someTable AS main;
如果使用SQL Server 2017及以上版本,还可以简化写法:
SELECT JSON_QUERY( (SELECT * FOR JSON PATH, WITHOUT_ARRAY_WRAPPER) ) AS row_json FROM someTable;
执行上述语句后,结果集中的每一行都会是仅包含对应原表行数据的独立JSON字符串,而非合并后的单个JSON数组。
内容的提问来源于stack exchange,提问作者Graham
相关产品推荐
相关产品推荐

