Ich kann nicht glauben, wie oft diese Frage schon beantwortet wurde, ohne das Problem mit dem eigentlichen Code des Originalposters zu verstehen und/oder zu lösen. Das heißt, ich bin ein Anfänger selbst (nur 2 Monate der Codierung). Mein Code funktioniert perfekt, aber Sie können gerne Änderungen vorschlagen. Hier ist die Lösung:
//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);
Hier ist ein kürzerer Weg, um denselben Code zu schreiben, den ich oben angegeben habe:
var json = JSON.parse($.getJSON({'url': "http://spoonertuner.com/projects/test/test.json", 'async': false}).responseText);
Sie können auch $.ajax anstelle von $.getJSON verwenden, um den Code auf die gleiche Weise zu schreiben:
var json = JSON.parse($.ajax({'url': "http://spoonertuner.com/projects/test/test.json", 'async': false}).responseText);
Schließlich die letzte Möglichkeit, dies zu tun ist es, $.ajax in eine Funktion zu verpacken. Diese Funktion ist nicht mein Verdienst, aber ich habe sie ein wenig modifiziert. Ich habe es getestet und es funktioniert und liefert die gleichen Ergebnisse wie mein obiger Code. Ich habe diese Lösung hier gefunden --> json in Variable laden
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);
El test.json Datei, die Sie in meinem obigen Code sehen, wird auf meinem Server gehostet und enthält das gleiche json-Datenobjekt, das er (der ursprüngliche Poster) gepostet hatte.
{
"a" : "b",
"c" : "d"
}