我想从我的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"}}}
答案 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.
});