将 JSON 对象转换为另一个 - 格式化

新手上路,请多包涵

我想将一个 JSON 格式的输出转换为另一个。我该怎么做?

示例:旧 JSON

 "data":
[
    {
        "id" : "e49e183e-9325-4e62-8eda-7e63fb7cdbbd",
        "name" : "test"
    },
    {
        "id" : "ac310894-d808-447b-a189-d07edb7f6dd7",
        "name" : "test2"
    }
]

我只想要没有大括号的新 JSON,就像这样带括号

"aaData":
[
    [
        "e49e183e-9325-4e62-8eda-7e63fb7cdbbd","test"
    ],
    [
        "ac310894-d808-447b-a189-d07edb7f6dd7","test2"
    ]
]

原文由 Sascha Heim 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 411
2 个回答

您可以循环遍历这些项目并将它们推送到一个新对象中:

 var len = old.data.length,
    newData = {aaData:[]},
    i;

for ( i=0; i < len; i+=1 ) {
    newData.aaData.push( [ old.data[ i ].id, old.data[ i ].name] );
}

示例:https: //jsfiddle.net/q2Jzb/1/

您可能将这些传递给 DataTables(因为您使用名称 aaData),请注意 DataTables 将对象作为配置,它与 JSON 不同。

原文由 Niklas 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 JSONata 库的另一个答案:

使用以下方法可以轻松实现您想要的:

 $.[id, name]

有关现场演示,请查看: https ://try.jsonata.org/UXYx6_xEh

原文由 human 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题