JSON解析文件路径

jag*_*ger 20 javascript jquery parsing json

我试图获取本地文件的正确路径.我有以下目录:

Resources ->
   data ->
       file.json
   js ->
     folder ->
        script.js
   html ->
      folder ->
         file1.html
Run Code Online (Sandbox Code Playgroud)

我执行script.jsfile1.html,与JS代码:

var answers = JSON.parse('../../data/file.json');
alert(answers);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,即使警报没有开始.怎么了?

我也试过这个:

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);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,警报未定义.

kar*_*ikr 42

因为它在目录中data/,你需要做:

文件路径是 '../../data/file.json'

$.getJSON('../../data/file.json', function(data) {         
    alert(data);
});
Run Code Online (Sandbox Code Playgroud)

纯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]);
Run Code Online (Sandbox Code Playgroud)

  • XMLHttpRequest无法加载file:///.../data.json.交叉源请求仅支持协议方案:http,data,chrome,chrome-extension,https,chrome-extension-resource. (11认同)
  • 我需要纯js (2认同)
  • 在本地开发时,我得到了同样的"XMLHttpRequest"错误.是否有任何非网络调用来加载本地JSON文件并解析它以在客户端JavaScript中使用? (2认同)

小智 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);
  }
}
Run Code Online (Sandbox Code Playgroud)

  • @Evorlor将第2行的false更改为true.否则它是同步操作. (4认同)