我是软件领域的新手。我有一个json阵列的对象像将一种形式的JSON数组转换为另一种形式?
var treeObj = [
{
"name": "sriram",
"refernce_id": "SAN001",
"sponer_id": "SAN000"
},
{
"name": "neeraja",
"refernce_id": "SAN002",
"sponer_id": "SAN001"
},
{
"name": "upender",
"refernce_id": "SAN003",
"sponer_id": "SAN001"
},
{
"name": "manoj",
"refernce_id": "SAN004",
"sponer_id": "SAN002"
},
{
"name": "shirisha",
"refernce_id": "SAN005",
"sponer_id": "SAN002"
},
{
"name": "ragu",
"refernce_id": "SAN006",
"sponer_id": "SAN003"
},
{
"name": "santhu",
"refernce_id": "SAN007",
"sponer_id": "SAN003"
}
];
在这里,我将通过上述对象的函数。在那个函数中,我需要在每个对象中将引用ID与sponer_id进行比较,如果它们相等,我们需要将它们推入一个数组,我们将其称为子对象,就像下面一样,我们需要再次检查子数组中的引用ID in存在于上述对象的sponer_id中,如果它再次存在,我们需要将它们推送到子数组中,将其放入包含reference_id的对象中。最终的数组对象看起来像。
[
{
"name": "sriram",
"parent": null,
"children": [
{
"name": "neeraja",
"parent": "sriram",
"children": [
{
"name": "manoj",
"parent": "neeraja"
},
{
"name": "shirisha",
"parent": "neeraja"
}
]
},
{
"name": "upender",
"parent": "sriram",
"children": [
{
"name": "ragu",
"parent": "neeraja"
},
{
"name": "santhu",
"parent": "neeraja"
}
]
}
]
}
]
这里sriram的treeObj参考ID在neeraja和upender对象中作为sponder id存在。所以neeraja和upender成为孩子对斯里兰卡。 neeraja的reference_id在treeObj的manoj和shirisha对象中作为sponer_id存在。同时孩子可以有更多的孩子对象,我们需要动态地格式化对象。
这是我写的模样
var mainArr = [], subArrs = [], subObj={}, subIds = [], find = "SAN001";
formatData(treeObj);
function formatData(treeObj){debugger;
var arr = [];
for(var x=0; x<= treeObj.length-1; x++){debugger;
var sampData = treeObj[x];
if(find == sampData.sponer_id){
arr.push(sampData.refernce_id);
subArrs.push(sampData);
}
}
subIds.push(arr);
console.log(subIds);
console.log(subArrs);
formatData(subArrs);
}
功能请指导我在哪里出了错。提前致谢。
'Java'不是'JavaScript' – Smit