Javascript 将文件夹结构转换为json
我尝试采用文件夹结构,并将其转换为JSON格式:Javascript 将文件夹结构转换为json,javascript,node.js,json,Javascript,Node.js,Json,我尝试采用文件夹结构,并将其转换为JSON格式: . ├── Folder │ ├── Image.png │ └── Image_1.png └── Folder2 ├── Image.png └── Image_1.png 结构如下: { "Folder": ["Image.png", "Image_1.png"], "Folder2": ["Image.png", "Image_1.png"] } 谢谢。这样的事情可能吗 编辑:这是我开始使用的,但是当试
.
├── Folder
│ ├── Image.png
│ └── Image_1.png
└── Folder2
├── Image.png
└── Image_1.png
结构如下:
{
"Folder": ["Image.png", "Image_1.png"],
"Folder2": ["Image.png", "Image_1.png"]
}
谢谢。这样的事情可能吗
编辑:这是我开始使用的,但是当试图深入到文件夹中的文件夹时,递归正在中断
const fs = require('fs');
const path = require('path');
var structure = {};
function findFiles(folder) {
fs.readdir(folder, (err, files) => {
files.forEach(file => {
console.log(file);
if(fs.lstatSync(__dirname + "/" + file).isDirectory()){
console.log(folder)
findFiles(folder + "/" + file);
}
});
})
}
findFiles(__dirname)
有趣的问题。这是我的解决方案,使用同步功能。输出JSON将包含一个对象数组,可以是字符串(用于文件名)或对象(用于目录) 代码(): 输出:
[ { node: [ '.bash_logout', '.bashrc', '.profile' ] },
{ runner:
[ '.bash_logout',
'.bashrc',
'.profile',
'config.json',
'index.js',
{ node_modules: [] },
'test.js' ] } ]
请注意,我正在使用
util.inspect
打印结果,以允许对象具有无限深度,但您也可以执行JSON.stringify(results)
这是可能的。也许先试试看?从“fs”库开始。很好的机会使用你的递归技巧。我有点困惑。我尝试使用fs.readdir,但不确定如何判断它是文件还是文件夹,以及如何知道何时停止深入某个路径。@Jeff仔细阅读,并尝试一下。然后发布你的尝试,具体来说,什么是不起作用的。我一直在经历这一过程,在文件夹中查找文件夹时遇到了困难。我添加了一些代码来说明我现在的处境。请看我最近对一个类似问题的回答:这真的很有趣。节点模块是否为空,因为其中没有任何内容?@Jeff是的,空文件夹对应于空数组
[ { node: [ '.bash_logout', '.bashrc', '.profile' ] },
{ runner:
[ '.bash_logout',
'.bashrc',
'.profile',
'config.json',
'index.js',
{ node_modules: [] },
'test.js' ] } ]