我使用getJSON從我的網站請求JSON。它的偉大工程,但我需要將輸出保存到另一個變量,像這樣:jQuery getJSON保存結果到變量
var myjson= $.getJSON("http://127.0.0.1:8080/horizon-update", function(json) {
});
我需要將結果保存到myjson
但似乎這個語法是不正確的。有任何想法嗎?
我使用getJSON從我的網站請求JSON。它的偉大工程,但我需要將輸出保存到另一個變量,像這樣:jQuery getJSON保存結果到變量
var myjson= $.getJSON("http://127.0.0.1:8080/horizon-update", function(json) {
});
我需要將結果保存到myjson
但似乎這個語法是不正確的。有任何想法嗎?
只有在回覆後才能致電getJSON
,您無法獲得價值。
var myjson;
$.getJSON("http://127.0.0.1:8080/horizon-update", function(json){
myjson = json;
});
這個問題是由於計時問題,'var myjson'在下一行不可用。 –
@JanDvorak是的,請求是異步執行的,如果你需要'json'數據繼續,你應該在設置'myjson'變量後調用其他代碼。作爲解決方案,它可以像來自Ravi answer的「callbackFuncWithData」,或者只是調用另一個函數。 – webdeveloper
一旦你這樣做,真的沒有理由把myjson聲明在外面。把它作爲參數傳遞給回調函數。 –
$ .getJSon希望將回調函數傳遞給回調函數,或者在回調函數中將其分配給全局變量。
var globalJsonVar;
$.getJSON("http://127.0.0.1:8080/horizon-update", function(json){
//do some thing with json or assign global variable to incoming json.
globalJsonVar=json;
});
IMO最好是調用回調函數。這對眼睛更可讀,可讀性更強。
$.getJSON("http://127.0.0.1:8080/horizon-update", callbackFuncWithData);
function callbackFuncWithData(data)
{
// do some thing with data
}
只需刪除'VAR myjson =' – Cristy
看一看[如何返回從函數的AJAX調用的響應?](http://stackoverflow.com/questions/14220321/how-to-返回從一個函數調用ajax函數) - 至少它應該給你正確的想法如何解決這個問題。語法btw是有效的,它只是不做你想要的。 –