【发布时间】:2017-05-29 15:32:21
【问题描述】:
如何将文件夹结构 JSON String 转换为 JS Array。我关注 JSON 字符串
[{ "Name": "A", "ParentName": "Config", "Type": "default" },
{ "Name": "SubA", "ParentName": "A", "Type": "default" },
{ "Name": "SubAFile", "ParentName": "SubA", "Type": "file" },
{ "Name": "B", "ParentName": "Config", "Type": "default" },
{ "Name": "C", "ParentName": "Config", "Type": "default" }]
我想用下面的格式制作 JS Array 对象
var NewStr = [{
"name": 'A',
"id": 'A',
"icon": 'fa fa-folder',
"items": [{
"title": "A",
"icon": "fa fa-folder",
"id": "A",
"items": [{
"name": "subA",
"icon": "fa fa-folder",
"id": "subA",
"items": [{
"title": "SubA",
"icon": "fa fa-folder",
"id": "SubA",
"items": [{
"name": "SubAFile",
"icon": "fa fa-file"
}]
}]
}]
}]
}, {
"name": 'B',
"id": 'b',
"icon": "fa fa-folder"
}, {
"name": 'C',
"id": 'C',
"icon": "fa fa-folder"
}];
注意:我已包含 ParentName 以识别文件夹结构的层次结构。 ID 将与姓名相同。
对此有何建议?
谢谢..
【问题讨论】:
-
第 1 步 -
var array = JSON.parse(your string goes here)- 那么至少你有一个可以使用的 JS 数组 - 不过下一点更难 -
是的,我被困在下一部分...
-
您以重要的方式更改了所需的输出。你真的确定你需要这样吗?当您在其中添加与父级基本相同的节点并且仅在下一级添加子级时,将项目作为数组的目的是什么?这似乎是一个糟糕的设计结构。
-
@trincot 我正在尝试将来自multi-level-push-menu.make.rs 的导航菜单集成到我的项目对动态文件夹结构导航的需求中,这个插件以这种方式需要JS数组。
标签: javascript arrays json multidimensional-array nested