我将在 json 字符串中包含大量 Windows 文件“URL”,如下所示:
{"C:\\Users\\Tyler\Desktop\\File1.jpg','C:\\Users\\Tyler\\Desktop\\Folder1\\File2.png"}
等等等等...... 我需要在网站上以 Windows 资源管理器类型的方式组织这些文件,因此我需要将其组织为如下所示:
{"C:":[{"Users":[{"Tyler":[{"Desktop":[{"File1.jpg","Folder1":[{"File2.png"}]}]}]}]}]}
我需要在客户端 JavaScript 中完成此操作,jquery 也可以工作。 谢谢。
最佳答案
您可能不希望将文件和文件夹混合在一个对象中。我建议使用以下输出结构:
{"C:":{"Users":{"Tyler":{"Desktop":{"__files__":["File1.jpg"],
"Folder1":{"__files__":["File2.png"]}}}}}}
为了获得所需的输出,您可以执行以下步骤:
- 将 json 字符串解析为路径数组
- 循环处理每条路径
- 将路径分割成 block
- 删除最后一 block 并保存以供稍后使用
- 将剩余的 block 放入另一个 block 中
- 在最后一级创建
__files__
数组 - 将之前保存的文件名放入其中
唯一棘手的部分可能是步骤2.3
,因此我将提供示例代码:
var result = {};
var parts = ['C:', 'Users', 'Tyler'];
var root = result;
while (parts.length) {
const part = parts.shift();
root[part] = root[part] || {};
root = root[part];
}
关于javascript - 将 Windows 文件路径组织到文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37242476/