【发布时间】:2020-06-09 10:12:32
【问题描述】:
我有以下 JSON,里面有 files 和 folders(保留字)来指示哪些是文件和文件夹。
the_name_of_the_folder_itself:
"files": [array_of_files_]
"folders": [objects of folders inside this dir]
更容易看到 JSON 本身:
{
"configfiles": {
"folders": {
"dir1": {
"files": [
"data.dat",
"data2.dat"
]
},
"dir2": {
"folders": {
"subffolder": {
"files": [
[]
]
},
"subffolder_2": {
"files": [
"other.dat"
]
}
},
"files": [
[]
]
}
},
"files": [
[]
],
"LoadBase": "barfoo IGNORE THIS"
}
}
如何从该 JSON 中获取所有路径和文件,这意味着有一个包含以下元素的输出数组?
configfiles/
configfiles/dir1/
configfiles/dir1/data.dat
configfiles/dir1/data2.dat
configfiles/dir2/
configfiles/dir2/subffolder/
configfiles/dir2/subffolder_2/
configfiles/dir2/subffolder_2/other.dat
这是我目前的尝试:
function getPathAndFolder(folderPath)
{
foldersArray = Object.keys(folderPath)
foldersArray.forEach(function callback(folderName, index, array)
{
finalArray.push(folderName)
filesArray = folderPath[folderName].files
filesArray.forEach(function callback(fileName, index, array)
{
finalPath = folderName + "/" + fileName
});
// Call it again
//getPathAndFolder()
});
}
finalArray = []
getPathAndFolder(inputJSONobject)
有人可以帮帮我吗?
【问题讨论】:
-
不应该是
{folders: { configfiles: { /* ... */ } }吗? -
不,第一个/主要的之前没有
folders。
标签: javascript arrays json object