如何在没有jquery的情况下将本地JSON文件加载到java脚本中

时间:2014-09-21 18:34:48

标签: javascript json

希望这不是一个重复的问题,但我无法找到满意的答案。

我需要找到一种从本地文件系统导入javascipt JSON文件的方法,而不使用任何Jquery库或服务器端功能。

我正在创建一个power shell脚本,在其中我将一些对象导出为JSON。我想然后将该对象导入到使用javasscript的本地htm报告中。这意味着它将在本地运行和读取,而根本没有任何服务器端组件。我也不能使用JQuery或任何其他外部脚本,因为我希望所有这些都是自包含的并且在执行我的powershell脚本时编写...

我试过这个:

function loadJSON(path, success, error)
{
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function()
    {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                if (success)
                    success(JSON.parse(xhr.responseText));
            } else {
                if (error)
                    error(xhr);
            }
        }
    };
    xhr.open("GET", path, true);
    xhr.send();
}

loadJSON('./test.js',
         function(data) { console.log(data); },
         function(xhr) { console.error(xhr); }
);

但是,当然这失败了,并指出XMLHttpRequest只能用作服务器http请求,而不能用作本地文件请求。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

为什么不使用javascript的简单文件处理逐行读取文件,然后使用JSON解析器将其解析为JSON。或者通过您的代码,我可以看到您的JSON实际上并未存储在.json文件中而是存储在.js文件中,所以如果它像

那样

test.js的示例代码

var a = [
{
...
},
{
...
}
];

然后你可以将它包含为一个简单的js文件,就像你包含任何其他js文件一样,然后直接使用'a'var。