希望这不是一个重复的问题,但我无法找到满意的答案。
我需要找到一种从本地文件系统导入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请求,而不能用作本地文件请求。
感谢您提供的任何帮助。
答案 0 :(得分:1)
为什么不使用javascript的简单文件处理逐行读取文件,然后使用JSON解析器将其解析为JSON。或者通过您的代码,我可以看到您的JSON实际上并未存储在.json文件中而是存储在.js文件中,所以如果它像
那样test.js的示例代码
var a = [
{
...
},
{
...
}
];
然后你可以将它包含为一个简单的js文件,就像你包含任何其他js文件一样,然后直接使用'a'var。