Javascript 多维json到单个json

Javascript 多维json到单个json,javascript,arrays,json,loops,multidimensional-array,Javascript,Arrays,Json,Loops,Multidimensional Array,我只需要将多维json切换为单一json,为创建表的js插件提供它 下面是一个响应示例: [ { "services": [], "id": 1, }, { "services": [ { "status": { ... }, "name": "NAME" }, { "status": { ...

我只需要将多维json切换为单一json,为创建表的js插件提供它

下面是一个响应示例:

[
  {
    "services": [], 
    "id": 1, 
  },
  {
    "services": [
      {
        "status": {
          ...
        }, 
        "name": "NAME"
      }, 
      {
        "status": {
          ...
        }, 
        "name": "NAME 2"
      }
    ], 
    "id": 2
  }
]
我想要的是:

[
    {
        "services": [], 
        "id": 1, 
    },
    {
        "service": {name: 'NAME', status: '' ...}, 
        "id": 2,
    },
    {
        "service": {name: 'NAME 2', status: '' ...}, 
        "id": 2, 
    }
    ...
]
其思想是创建具有相同id且只有一个服务的新条目数组

这里有一个循环:

函数解析数据(json){
var newArray=[];
for(i=0;i0){
对于(j=0;j
最后,我得到两个具有相同“服务”条目的对象,而不是具有不同单个服务条目的两个对象。这个循环有什么问题

下面是JSFIDLE:


谢谢。

您正在对此行中的对象进行变异

item['service'] = json[i].services[j];
一个快速的方法是不改变原点的循环

var data=[{“services”:[],“id”:1,},{“services”:[{“status”:{},“name”:“name”},{“status”:{},“name”:“name 2”}],“id”:2}],
分组=[];
data.forEach(函数(a){
如果(!a.services.length){
分组。推(a);
返回;
}
a、 服务。forEach(功能(b){
push({services:b,id:a.id});
});
});

控制台日志(分组)好,看起来不错,但是如果json响应包含对象中未知的属性计数怎么办?手动将新属性添加到push方法
{services:b,id:a.id,new_property:'value'}
我认为这不是个好主意。然后需要迭代属性或使用