84

我使用 getJSON 从我的网站请求 JSON。它工作得很好,但我需要将输出保存到另一个变量中,如下所示:

var myjson= $.getJSON("http://127.0.0.1:8080/horizon-update", function(json) {

                 });

我需要将结果保存到myjson,但似乎这种语法不正确。有任何想法吗?

4

2 回答 2

75

调用时您无法获得价值getJSON,只有在响应之后。

var myjson;
$.getJSON("http://127.0.0.1:8080/horizon-update", function(json){
    myjson = json;
});
于 2013-04-02T13:07:01.140 回答
25

$.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 
}
于 2013-04-02T13:07:13.127 回答