Javascript:如何更改JSON结构(遍历JSON对象的所有节点)
为了方便起见,我想将一些JSON数据重新构造成不同的格式。从服务器获取的格式对我来说很不方便;所有项目都在一个节点中,但其中一些项目有Javascript:如何更改JSON结构(遍历JSON对象的所有节点),javascript,json,Javascript,Json,为了方便起见,我想将一些JSON数据重新构造成不同的格式。从服务器获取的格式对我来说很不方便;所有项目都在一个节点中,但其中一些项目有parent:id,它告诉我们该项目的父项 我想从JsonFromSrver中获取JSON结构,并将其重新构造为resultJson。我还需要能够在修改后以原始格式将数据发送回服务器 var JsonFromSrver = [ { "id": 1, "type": "folder",
parent:id
,它告诉我们该项目的父项
我想从JsonFromSrver
中获取JSON结构,并将其重新构造为resultJson
。我还需要能够在修改后以原始格式将数据发送回服务器
var JsonFromSrver = [
{
"id": 1,
"type": "folder",
"title": "HeadItem1",
},
{
"id": 2,
"type": "folder",
"title": "HeadItem2",
},
{
"id": 33,
"parent": 1,
"type": "file",
"title": "ChildItem",
},
{
"id": 103,
"parent": 2,
"type": "file",
"title": "ChildItem"
}
]
var resultJson = [
{
"id": 1,
"type": "folder",
"title": "HeadItem1",
"children":
[{
"id": 33,
"parent": 1,
"type": "file",
"title": "ChildItem"
}]
},
{
"id": 2,
"type": "folder",
"title": "HeadItem2",
"children":
[{
"id": 103,
"parent": 2,
"type": "file",
"title": "ChildItem"
}]
}
]
我只需将数据收集到分层对象结构中,然后进行字符串化:
var result = {};
for (var j in JsonFromSrver) {
var obj = JsonFromSrver[j];
if (!obj.parent) {
result[obj.id] = obj;
continue;
}
var parentObj = result[obj.parent];
if (!parentObj.children) parentObj.children = [];
parentObj.children.push(obj);
}
resultJson = [];
for (var i in result) {
resultJson.push(result[i]);
}
console.log(JSON.stringify(resultJson));
你的问题中没有angularjs我的应用程序基于angularjs。也许它有帮助这不是一个代码编写服务。。。尝试搜索
javascript递归树
ok。谢谢我只需要几行代码,这是为每个家长收集所有孩子的最快方式。“我只需要几行代码”。。。把它们放在一起,当你对真正的代码有问题的时候,问问题