getJSON并返回值字符串

时间:2014-05-03 16:18:57

标签: javascript php jquery json

我想从我的JSON文档中获取带有 getJSON 函数的字符串。每次返回undefined时我都会尝试返回值。这是我的代码。谢谢你的帮助。

 function getValues() {
       $.getJSON("layout.php",function(result){
         return result;    // this should be the return value
       });
 }


 var jsonString = getValues();
 alert(jsonString);

这是我的带有JSON字符串

的layout.php文档
{"bigfield0":{"field0":{"collapse":"false"},"field1":{"collapse":"true"}},"bigfield1":{"field2":{"collapse":"false"}}}

3 个答案:

答案 0 :(得分:0)

$ .getJSON使用回调并且不返回值。这是一个异步功能。 您可以在http://api.jquery.com/jquery.getjson/

上观看文档

尝试使用此功能。那应该为你返回一些数据:

 function getValues() {
       $.getJSON("layout.php",function(result){
         alert(result);    // this should be the return value
       });
 }

答案 1 :(得分:0)

答案是getJSON是异步方法,因此它确实有效,其余代码仍在运行。在您尝试使用结果时,getJSON仍在进行中。解决方案:回调

function getValues(callback) {
   $.getJSON("layout.php",function(result){
     callback(result);    // this should be the return value
   });
}

并称之为:

getValues(function(values) {
    console.log(values);
});

答案 2 :(得分:0)

getJSON中的第三个参数是一个不能返回值的异步回调函数。 另外,要将JSON对象作为字符串打印,您需要将该对象序列化为字符串。

var jsonString = JSON.stringify(jsonObject)

您的整体代码应如下所示:

//Code before the GET.

$.getJSON("layout.php",function(result){
    var jsonString = JSON.stringify(result) //asuming result is a JSON object.
    // the remaining of your script.
});