我正在使用Azure sql server并尝试以下列格式导出查询结果。
必需的查询结果:
{"结果":[{...},{...}],"回复":0}
从此示例中:https://msdn.microsoft.com/en-us/library/dn921894.aspx
我正在使用这个sql,但我不确定如何将另一个响应属性添加为root属性的兄弟:"结果"。
当前查询:
SELECT name, surname
FROM emp
FOR JSON AUTO, ROOT('results')
查询输出:
{"结果":[ {"姓名":" John","姓":" Doe" }, {"姓名":"简","姓":" Doe" }]}
答案 0 :(得分:3)
使用FOR JSON AUTO
代替 notifications = ($http.get(link)
.success(function(data, status, headers, config){
console.log(data);
return data;
})
.error(function(err) {
return err;
})
);
return notifications;
。有关几个示例,请参阅Format Query Results as JSON with FOR JSON (SQL Server)页面,包括点分隔列名称和来自SELECTS的查询
答案 1 :(得分:1)
此格式没有内置选项,因此最简单的方法可能是手动格式化响应,例如:
declare @resp nvarchar(20) = '20'
SELECT '{"response":"' +
(SELECT * FROM emp FOR JSON PATH) +
'", "response": ' + @resp + ' }'
FOR JSON会做更难的部分(格式化表格),你只需要把它包起来。