Путь файла анализа JSON

Я застреваю, пытаясь получить правильный путь к локальному файлу. У меня есть следующие каталоги:

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);

Предупреждение undefined в этом случае.

Ответ 1

Так как он находится в каталоге 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]);

Ответ 2

В этом решении используется асинхронный вызов. Это, скорее всего, будет работать лучше, чем синхронное решение.

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);
  }
}

Ответ 4

Если Resources является корневым путем, лучший способ доступа к file.json - через /data/file.json

Ответ 5

var request = new XMLHttpRequest();
request.open("GET","<path_to_file>", false);
request.send(null);
var jsonData = JSON.parse(request.responseText);

Этот код работал для меня.