Javascript 多维json到单个json
我只需要将多维json切换为单一json,为创建表的js插件提供它 下面是一个响应示例: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": { ...
[
{
"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'}
我认为这不是个好主意。然后需要迭代属性或使用