SQL 服务器:将查询结果导出为 JSON 对象

SQL SERVER: Export Query RESULT as JSON Object

我正在使用 Azure sql 服务器并尝试以下列格式导出查询结果。

所需查询结果:

{ "results": [{...},{...}], "response": 0 }

来自这个例子:https://msdn.microsoft.com/en-us/library/dn921894.aspx

我正在使用这个 sql 但我不确定如何添加另一个响应 属性 作为根 属性 的同级 :"results".

当前查询:

SELECT name, surname
FROM emp
FOR JSON AUTO, ROOT('results')

查询输出:

{ "results": [ { "name": "John", "surname": "Doe" }, { "name": "Jane", "surname": "Doe" } ] }

使用 FOR JSON PATH 而不是 FOR JSON AUTO。有关几个示例,请参阅 Format Query Results as JSON with FOR JSON (SQL Server) 页面,包括点分隔的列名称和来自 SELECTS

的查询

此格式没有内置选项,因此最简单的方法可能是手动设置响应格式,例如:

declare @resp nvarchar(20) = '20'
SELECT '{"response":"' +
         (SELECT * FROM emp FOR JSON PATH) +
         '", "response": ' + @resp + ' }' 

FOR JSON 会做更难的部分(格式化 table),你只需要将它包装起来。