web-dev-qa-db-fra.com

jQuery getJSON enregistrer le résultat dans une variable

J'utilise getJSON pour demander un JSON à partir de mon site Web. Cela fonctionne très bien, mais je dois enregistrer la sortie dans une autre variable, comme ceci:

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

                 });

J'ai besoin de sauvegarder le résultat dans myjson, mais il semble que cette syntaxe soit incorrecte. Des idées?

67
user1229351

Vous ne pouvez pas obtenir de valeur lorsque vous appelez getJSON, uniquement après une réponse.

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

$ .getJSon attend des fonctions de rappel soit vous les transmettez à la fonction de rappel, soit, dans la fonction de rappel, vous les affectez à une variable globale.

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 mieux est d'appeler la fonction de rappel. ce qui est plus agréable aux yeux, les aspects de lisibilité.

$.getJSON("http://127.0.0.1:8080/horizon-update", callbackFuncWithData);

function callbackFuncWithData(data)
{
 // do some thing with data 
}
22
Ravi Gadag