我具有扫描目录并在其中建立所有文件夹及其各自文件的键,值对的功能。
const listNotes = () => {
const listing = [];
try{
const folders = fs.readdirSync(defaultPath);
folders.forEach((folder) => {
let v = fs.readdirSync(`${defaultPath}/${folder}`);
listing[folder] = v;
});
} catch (err) {
console.log(err);
}
return listing;
};
这是这种扫描的输出
[ DailyTask: [ 'Chores.json' , 'Sunday.json'] ]
这是一个名为DailyTask的文件夹,其中包含2个文件。
如何将这种结构转换为JSON。
答案 0 :(得分:0)
您的listing
变量的问题在于它是Array
。 JSON.stringify()
不包括数组中的所有键,仅包括项的顺序,例如listing[0]
,listing[1]
。在您的情况下,您实际上并没有使用listing
作为数组,而是使用了is作为对象。您可以将其设置为object
,然后在调用JSON.stringify()
时将包含密钥。
解决方案
const listNotes = () => {
const listing = {};
try{
const folders = fs.readdirSync(defaultPath);
folders.forEach((folder) => {
let v = fs.readdirSync(`${defaultPath}/${folder}`);
listing[folder] = v;
});
} catch (err) {
console.log(err);
}
return listing;
//If you want to convert to JSON
console.log(JSON.stringify(listing));
};