Javascript 将JSON解析为自定义';树状';文件结构
我有一个自定义类的文件夹/文件系统,其中文件夹可以包含文件夹或文件的子项。文件不能有子文件。当我添加了文件夹和文件后,我希望保存结构以便能够恢复它。现在,我将该结构存储为JSON字符串,我的问题是如何将其解析回自定义类 JSON字符串可能如下所示:Javascript 将JSON解析为自定义';树状';文件结构,javascript,json,Javascript,Json,我有一个自定义类的文件夹/文件系统,其中文件夹可以包含文件夹或文件的子项。文件不能有子文件。当我添加了文件夹和文件后,我希望保存结构以便能够恢复它。现在,我将该结构存储为JSON字符串,我的问题是如何将其解析回自定义类 JSON字符串可能如下所示: { "name": "Root", "type": "Folder", "img": null, "checked": false, "children": [ { "name": "Folder1",
{
"name": "Root",
"type": "Folder",
"img": null,
"checked": false,
"children": [
{
"name": "Folder1",
"type": "Folder",
"img": "img/folder.png",
"checked": false,
"children": [
]
},
{
"name": "Desert.jpg",
"type": "image/jpeg",
"img": "img/file.png",
"checked": false,
"data": {
"lastModifiedDate": "2009-07-14T05:32:31.000Z",
"size": 845941
}
}
]
}
其中,type==='Folder'
的子级属于我的自定义文件夹类,type!='文件夹“
是我的自定义文件类的对象
我应该如何解析这个JSON来创建新的自定义对象并将它们存储在我的文件结构中?
我曾尝试过这样做,但我在第一级就被卡住了。我不太擅长递归,我想我应该这样做。
到目前为止,我的代码在根目录中只有文件/文件夹而没有子文件夹/子文件时仍然有效
function importJson(json){
var jsonObj = JSON.parse(json);
//This line needs to be fixed when/if recursion?
var currentFolder = rootFolder; //a global variable which is my rootFolder
for(var i = 0, obj = jsonObj.children; i < obj.length; i++){
if(obj[i].type === 'Folder'){
var folder = new Folder(obj[i].name, 'Folder');
folder.img = obj[i].img;
currentFolder.add(folder);
console.log('A folder, check for children?');
}
else{
var file = new File(obj[i].name, obj[i].type);
file.data = obj[i].data;
file.img = obj[i].img;
currentFolder.add(file);
console.log('a file');
}
}
}
函数importJson(json){
var jsonObj=JSON.parse(JSON);
//当/如果递归时,这一行需要修复?
var currentFolder=rootFolder;//一个全局变量,它是我的rootFolder
for(var i=0,obj=jsonObj.children;iobj[i]
谢谢,这比预期的要简单。必须更改我的currentFolder,以便所有内容都不会添加到根目录中。