我试图通过tsql层次 struct 表输出JSON.

代码:

select Field1, Field2 from @header inner join @line on @header.Id = @Line.Id FOR JSON AUTO

我得到:

"Field1": "BOB",
"Field2": "BOB2",

但我希望它能展示出来

 "Field1": {
   "value": "BOB"
 },
 "Field2": {
   "value": "BOB2"
 },

我做错了什么?我可以使用文本操作,但我想知道是否有一种"幸运的"方式,即内置的可读性和最佳实践.

推荐答案

 Select STRING_AGG(concat('"',[Key],'":{"value":"',string_escape(Value,'json'),'"}'),',')
  From  OpenJson(  (Select * From @YourTable For JSON Path,Without_Array_Wrapper ) ) 

For 2016 -- STUFF XML

Select stuff((Select concat('"',[Key],'":{"value":"',string_escape(Value,'json'),'"}') 
  From  OpenJson(  (Select * From @YourTable For JSON Path,Without_Array_Wrapper ) )
  For XML Path ('')),1,0,'')

Results

"Field1":{
   "value":"Bob"
 },
"Field2":{
    "value":"Bob2"
}

Json相关问答推荐

从JSON格式提取数据时分隔通用名称

属性错误:';ActivitiesClient';对象没有属性';base_url';

如何使用模式注册中心创建从主题中取消本地化的ks qlDB表?

在Jolt中将具有嵌套元素的对象数组转换为单独的对象列表

在深度嵌套数组中使用布尔属性的jq-select

使用 JSON 和相对日期设置日历视图中 SharePoint 列表项的背景 colored颜色 格式

迭代powershell双维json对象

PowerShell - 将 json 添加到文件内容

如果值不存在,则将值插入 JSON 数组

从 JSON 响应中获取最新版本发布字段

Powershell中等效的JSONPath通配符以 Select 对象中的所有数组

Angular 2/Web Api - json 解析错误语法错误意外结束输入

现代浏览器一次可以处理多少个 HTML 元素?

如何一次加载无限滚动中的所有条目以解析python中的HTML

在 Bash 中访问 JSON 对象 - 关联数组/列表/另一个模型

如何使用 Kotlin + Jackson 将 JSON 反序列化为 List

如何访问 JSON 对象数组的第一个元素?

可以在 SharedPreferences 中保存 JSON 数组吗?

无法将空值放入 JSON 对象

如何从 MVC 控制器返回 Json 对象以查看