文件夹转json
const fs = require('fs');
function dirtojson(dir) {
let stat = fs.statSync(dir);
if (stat.isFile()) {
return {
name: dir,
isfile: true,
content: fs.readFileSync(dir, 'utf8'),
ext: dir.slice(dir.lastIndexOf('.')),
}
} else {
return {
name: dir,
isfile: false,
content: fs.readdirSync(dir).map(item => {
return dirtojson(dir + '/' + item);
})
}
}
}
let data = JSON.stringify(dirtojson('2'));
fs.writeFileSync('index.json', data);
json转文件夹
const fs = require("fs");
function JsonToDir(data) {
if (data.isFile) {
// 是文件
fs.writeFileSync(data.name, data.content)
} else {
// 是文件夹
fs.mkdirSync(data.name);
// 循环数组
data.children.forEach(item => {
// 递归
JsonToDir(item)
})
}
}
let data = JSON.parse(fs.readFileSync("data.json"))
JsonToDir(data)