[英]How To Get The Unique Elements for Each Level (Like MainMenu/Submenu1/SubMenu2) On Json using java or javascript…?
我有下面的json,我想為每個主節點獲取唯一的子子節點
{
"name": "MENUS",
"value": "",
"children": [
{
"name": "MENU1",
"value": {},
"children": [
{
"name": "SubMenu1",
"value": {},
"children": [
{
"name": "SubMenu2",
"value": {},
"children": [
{
"name": "SubMenu3",
"value": {
"Pld": "1"
},
"children": []
}
]
}
]
}
]
},
{
"name": "MENU1",
"value": {},
"children": [
{
"name": "SubMenu1",
"value": {},
"children": [
{
"name": "SubMenu2",
"value": {},
"children": [
{
"name": "SubMenu4",
"value": {
"Pld": "1"
},
"children": []
}
]
}
]
}
]
}
]
}
我想要每個主節點的JSON格式如下,我想要唯一的子節點,這意味着該子節點不應在JSON中重復。
{
"name": "MENUS",
"value": "",
"children": [
{
"name": "MENU1",
"value": {},
"children": [
{
"name": "SubMenu1",
"value": {},
"children": [
{
"name": "SubMenu2",
"value": {},
"children": [
{
"name": "SubMenu3",
"value": {
"Pld": "1"
},
"children": []
},
{
"name": "SubMenu4",
"value": {
"Pld": "1"
},
"children": []
}
]
}
]
}
]
}
]
}
能否請任何人幫助我如何獲取唯一的分層樹JSON。
編輯::添加POJO類以供參考
這就是我的Java Pojo的樣子,
私有字符串名稱;
私有字符串值;
私人兒童[]兒童;
私有字符串名稱;
私人價值價值;
私人兒童[]兒童;
私有String Pld;
您可以使用迭代和遞歸方法,在每個級別中搜索現有名稱,並在數組中添加新對象(如果找不到)。
var object = { name: "MENUS", value: "", children: [{ name: "MENU1", value: {}, children: [{ name: "SubMenu1", value: {}, children: [{ name: "SubMenu2", value: {}, children: [{ name: "SubMenu3", value: { Pld: "1" }, children: [] }] }] }] }, { name: "MENU1", value: {}, children: [{ name: "SubMenu1", value: {}, children: [{ name: "SubMenu2", value: {}, children: [{ name: "SubMenu4", value: { Pld: "1" }, children: [] }] }] }] }] }, unique = [object].reduce(function iter(r, { name, value, children = [] }) { var object = r.find(o => o.name === name); if (!object) { object = { name, value }; r.push(object); } children.reduce(iter, object.children = object.children || []); return r; }, []); console.log(unique);
.as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.