Javascript getJSON并返回值字符串

Javascript getJSON并返回值字符串,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我想从我的JSON文档中获取带有getJSON函数的字符串。我试图通过每次返回未定义的值来返回该值。下面是我的代码。谢谢你的帮助 function getValues() { $.getJSON("layout.php",function(result){ return result; // this should be the return value }); } var jsonString = getValues(); ale

我想从我的JSON文档中获取带有getJSON函数的字符串。我试图通过每次返回未定义的值来返回该值。下面是我的代码。谢谢你的帮助

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


 var jsonString = getValues();
 alert(jsonString);
这是带有JSON字符串的my layout.php文档

{"bigfield0":{"field0":{"collapse":"false"},"field1":{"collapse":"true"}},"bigfield1":{"field2":{"collapse":"false"}}}

$.getJSON正在使用回调,不返回值。这是一个异步函数。 您可以在上观看文档

试着用这个。这将为您返回一些数据:

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

答案是
getJSON
是一个异步方法,因此它确实可以工作,而其余的代码则保持运行。在您尝试使用结果时,
getJSON
仍在进行中。解决方案:回调

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

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

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.
});

查找术语“asynchronous”…-1“getJSON”,并返回值字符串“=超过900个结果