尝试使用AJAX加载json数据时,重新加载javascript函数时出现Jquery错误

尝试使用AJAX加载json数据时,重新加载javascript函数时出现Jquery错误,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我试图用javascript和json可视化一个文件夹结构。它会自动加载文件夹的根目录。当用户单击文件夹时,应加载该文件夹中的文件和文件夹等 深入json的javascript代码运行良好,它使用变量“root”加载json文件的第一个“层”。如果我手动将其更改为“root.deeperFolder”,它将到达该文件夹。那很好 $.ajax({ type: 'GET', url: 'directory.json', data: { get_param: 'valu

我试图用javascript和json可视化一个文件夹结构。它会自动加载文件夹的根目录。当用户单击文件夹时,应加载该文件夹中的文件和文件夹等

深入json的javascript代码运行良好,它使用变量“root”加载json文件的第一个“层”。如果我手动将其更改为“root.deeperFolder”,它将到达该文件夹。那很好

$.ajax({
    type: 'GET',
    url: 'directory.json',
    data: {
    get_param: 'value'
    },dataType: 'json',
    success: buildRoot
});
ajax请求的代码,如果成功,则调用buildRoot函数

function buildRoot(root, clickedFolder){

    if (typeof root === 'string') {
            var addFolder = "." + clickedFolder;
            var stringRoot = root + addFolder;          
            var root = eval(stringRoot);
            console.log(stringRoot);
        }

    $.each(root, function(index, element){

        if (isNaN(index)) {
            $("#sideFolderContainer").append("<li class='folder' id=" + index + ">" + index + "</li>");
        }
        else {
            $("#sideFolderContainer").append("<li>" + element + "</li>");
        }
    });

}   
此函数将“更深的文件夹”信息发送到上一个buildRoot函数。buildRoot函数将更深层文件夹的名称添加到root。(root.deeperFolder)手动工作的内容

我想在函数之间传递数据不是问题,因为这样做很好。我在这一行得到了错误:

 $.each(root, function(index, element){
这是控制台输出的内容(忽略第一行)。

链接到JSON数据


我建议使用JSON.parse(jsonString)而不是评估

我认为这是一个更好的方法。(参见jQuery)

 $.each(root, function(index, element){