我一直试图获取本地文件的正确路径。我有以下目录:
Resources ->
data ->
file.json
js ->
folder ->
script.js
html ->
folder ->
file1.html
我正在script.js
执行file1.html
,使用js代码:
var answers = JSON.parse('../../data/file.json');
alert(answers);
但它不起作用,即使警报没有开始。 有什么问题?
我也试过这个:
function readJSON(file) {
var request = new XMLHttpRequest();
request.open('GET', file, false);
request.send(null);
if (request.status == 200)
return request.responseText;
};
var temp = readJSON('../../data/file.json');
alert(temp);
在这种情况下警报未定义。
答案 0 :(得分:38)
由于它位于data/
目录中,您需要执行以下操作:
文件路径为'../../data/file.json'
$.getJSON('../../data/file.json', function(data) {
alert(data);
});
Pure JS:
var request = new XMLHttpRequest();
request.open("GET", "../../data/file.json", false);
request.send(null)
var my_JSON_object = JSON.parse(request.responseText);
alert (my_JSON_object.result[0]);
答案 1 :(得分:7)
此解决方案使用异步调用。它可能比同步解决方案更好。
var request = new XMLHttpRequest();
request.open("GET", "../../data/file.json", false);
request.send(null);
request.onreadystatechange = function() {
if ( request.readyState === 4 && request.status === 200 ) {
var my_JSON_object = JSON.parse(request.responseText);
console.log(my_JSON_object);
}
}
答案 2 :(得分:3)
使用类似的东西
$.getJSON("../../data/file.json", function(json) {
console.log(json); // this will show the info in firebug console
alert(json);
});
答案 3 :(得分:1)
var request = new XMLHttpRequest();
request.open("GET","<path_to_file>", false);
request.send(null);
var jsonData = JSON.parse(request.responseText);
这段代码对我有用。
答案 4 :(得分:0)
如果Resources
是根路径,则访问file.json
的最佳方式是/data/file.json
答案 5 :(得分:0)
我的工作代码是:
var request = new XMLHttpRequest();
request.open("GET", "<path_to_file>", false);
request.overrideMimeType("application/json");
request.send(null);
var jsonData = JSON.parse(request.responseText);
console.log(jsonData);