Если у вас есть JSON в качестве строки, JSON.parse()
будет работать нормально. Поскольку вы загружаете json из файла, вам нужно выполнить XMLHttpRequest. Например: (Это пример w3schools.com):
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.name;
}
};
xmlhttp.open("GET", "json_demo.txt", true);
xmlhttp.send();
Use the XMLHttpRequest to get the content of a file.
The content is written in JSON format, and can easily be converted into a JavaScript object.
Take a look at json_demo.txt
Он не будет работать здесь, так как этот файл не находится Вот. Перейдите к этому примеру w3schools: https://www.w3schools.com/js/tryit.asp?filename=tryjson_ajax
Вот документация для JSON.parse () : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
Вот сводка:
Метод JSON.parse () анализирует строку JSON, создавая значение JavaScript или объект, описываемый строкой. Дополнительная функция reviver может быть предоставлена для выполнения преобразования на результирующем объекте до его возвращения.
blockquote>Вот пример использования:
var json = '{"result":true, "count":42}'; obj = JSON.parse(json); console.log(obj.count); // expected output: 42 console.log(obj.result); // expected output: true
Если вы не хотите использовать XMLHttpRequests, то способ JQUERY (который я не уверен, почему он не работает для вас) - это http: // api. jquery.com/jQuery.getJSON/
Поскольку он не работает, я бы попытался использовать XMLHttpRequests
EDIT:
Вы могли бы также попробуйте запросы AJAX:
$.ajax({ 'async': false, 'global': false, 'url': "/jsonfile.json", 'dataType': "json", 'success': function (data) { // do stuff with data } });
Документация: http://api.jquery.com/jquery.ajax/