Javascript 根据json文件上的定义创建文件夹结构
如何使用此json结构创建文件夹结构Javascript 根据json文件上的定义创建文件夹结构,javascript,json,node.js,filesystems,Javascript,Json,Node.js,Filesystems,如何使用此json结构创建文件夹结构 { "europe": { "poland":{}, "france":{}, "spain":{}, "greece":{}, "UK":{}, "germany":"txt" }, "Asia": { "india":"xml" }, "Africa":null } 以这样的方式 具有对象值的属性将成为文件夹 具有字符串值的属性是文件,其值表示其扩展名 具有null值的属性是没
{
"europe": {
"poland":{},
"france":{},
"spain":{},
"greece":{},
"UK":{},
"germany":"txt"
},
"Asia": {
"india":"xml"
},
"Africa":null
}
以这样的方式
有人知道如何在nodejs中实现这一点吗?您必须递归迭代并创建文件夹和文件 没有测试,但类似的东西应该很接近
var fs = require('fs');
var obj = {
"europe": {
"poland": {},
"france": {},
"spain": {},
"greece": {},
"UK": {},
"germany": "txt"
},
"Asia": {
"india": "xml"
},
"Africa": null
};
(function create(folder, o) {
for (var key in o) {
if ( typeof o[key] === 'object' && o[key] !== null) {
fs.mkdir(folder + key, function() {
if (Object.keys(o[key]).length) {
create(folder + key + '/', o[key]);
}
});
} else {
fs.writeFile(folder + key + (o[key] === null ? '' : '.' + o[key]));
}
}
})('/', obj);
更新 我还在寻找一种基于JSON创建文件和文件夹的解决方案,并发现了这个有趣的节点模块“node jsondir” 以下是它的工作原理示例:
var jsondir = require('jsondir');
jsondir.json2dir({
"-path": 'path/to/directory',
"myfile": {
"-content": 'Hello world!'
},
"mydir": {
"a": {
"b": {
"c": {
"-type": 'd'
}
}
},
"1": {
"2": {
"3": {}
}
}
}
}, function(err) {
if (err) throw err;
});
经过测试,效果良好
节点模块是所以非洲是一个文件,而不是文件夹?是的。只是一个没有扩展名的文件。文件夹始终用对象表示,对象可以是空的,也可以包含其他嵌套对象