Я не могу поверить, сколько раз на этот вопрос был дан ответ, не понимая и / или не решая проблему с действительным кодом оригинального плаката.Тем не менее, я сам новичок (всего 2 месяца программирования).Мой код работает отлично, но не стесняйтесь предлагать любые изменения в нем. Вот решение:
//include the 'async':false parameter or the object data won't get captured when loading
var json = $.getJSON({'url': "http://spoonertuner.com/projects/test/test.json", 'async': false});
//The next line of code will filter out all the unwanted data from the object.
json = JSON.parse(json.responseText);
//You can now access the json variable's object data like this json.a and json.c
document.write(json.a);
console.log(json);
Вот более короткий способ написания того же кода, который я предоставил выше:
var json = JSON.parse($.getJSON({'url': "http://spoonertuner.com/projects/test/test.json", 'async': false}).responseText);
Вы также можете использовать $ .ajax вместо$ .getJSON, чтобы написать код точно так же:
var json = JSON.parse($.ajax({'url': "http://spoonertuner.com/projects/test/test.json", 'async': false}).responseText);
Наконец, последний способ сделать это - это обернуть $ .ajax в функцию.Я не могу взять кредит на этот, но я немного изменил его.Я протестировал его, и он работает и дает те же результаты, что и мой код выше.Я нашел это решение здесь -> загрузить json в переменную
var json = function () {
var jsonTemp = null;
$.ajax({
'async': false,
'url': "http://spoonertuner.com/projects/test/test.json",
'success': function (data) {
jsonTemp = data;
}
});
return jsonTemp;
}();
document.write(json.a);
console.log(json);
Файл test.json , который вы видите в моем коде выше, размещен на моем сервере исодержит тот же объект данных json, который он (исходный плакат) опубликовал.
{
"a" : "b",
"c" : "d"
}