Javascript JSON解析文件路径
我一直在尝试获取本地文件的正确路径。我有以下目录:Javascript JSON解析文件路径,javascript,jquery,json,parsing,Javascript,Jquery,Json,Parsing,我一直在尝试获取本地文件的正确路径。我有以下目录: Resources -> data -> file.json js -> folder -> script.js html -> folder -> file1.html 我正在从file1.html执行script.js,js代码为: var answers = JSON.parse('../../data/file.
Resources ->
data ->
file.json
js ->
folder ->
script.js
html ->
folder ->
file1.html
我正在从file1.html
执行script.js
,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);
警报在这种情况下未定义。由于它位于目录
data/
中,您需要执行以下操作:
文件路径为“”../../data/file.json”
$.getJSON('../../data/file.json', function(data) {
alert(data);
});
纯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]);
如果
Resources
是根路径,那么访问file.json
的最佳方式是通过/data/file.json
用这样的东西
$.getJSON("../../data/file.json", function(json) {
console.log(json); // this will show the info in firebug console
alert(json);
});
此解决方案使用异步调用。它可能比同步解决方案工作得更好
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);
}
}
var-request=new-XMLHttpRequest();
打开(“获取”、“获取”、“错误”);
请求发送(空);
var jsonData=JSON.parse(request.responseText);
此代码对我有效。我的工作代码是:
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);
var-request=new-XMLHttpRequest();
打开(“获取”、“获取”、“错误”);
请求。重写emimetype(“应用程序/json”);
请求发送(空);
var jsonData=JSON.parse(request.responseText);
console.log(jsonData);
我不知道您可以将URI传递给JSON.parse
并让它为您执行请求
,该文件记录在哪里?是的。。编辑正在进行中。。猜测应该在您的纯js警报未启动后回答,因为alsoXMLHttpRequest无法加载file:///.../data.json. 跨源请求仅支持协议方案:http、data、chrome、chrome扩展、https、chrome扩展资源。在本地开发时,我会收到相同的XMLHttpRequest
错误。是否有任何非网络调用来加载本地JSON文件并解析它以便在客户端JavaScript中使用?实际上,我是在Tianium webview中创建的,所以通常资源应该是根路径。如果我使用document.location.pathname并在浏览器中启动,我肯定会得到文件://…未定义的警报。
,状态是什么,是否在控制台中产生错误?最后,如果(request.status==200)
为我制造了问题。即使找到该文件,它也会给出0。如果我删除它,一切都好。谢谢大家!欢迎来到SO。回答得好。我编辑了它,因为它是最好的答案时,独立。关于其他答案的对话在评论中是合适的。主线程上的同步XMLHttpRequest不推荐使用,因为它会对最终用户的体验产生有害影响。有关更多帮助,请选中。@evorl将第2行中的false更改为true。否则,这是一个同步操作。
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);