【问题标题】:getJSON and return the value string [duplicate]getJSON 并返回值字符串 [重复]
【发布时间】:2014-05-03 16:18:57
【问题描述】:

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

 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"}}}

【问题讨论】:

  • 查找术语“异步”...
  • -1 'getJSON 并返回值字符串' = 超过 900 个结果

标签: javascript php jquery json


【解决方案1】:

$.getJSON 使用回调并且不返回值。这是一个异步函数。 你可以在http://api.jquery.com/jquery.getjson/观看文档

尝试使用它。这应该会为您返回一些数据:

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

【讨论】:

    【解决方案2】:

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

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

    并称之为:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-04
        • 2019-07-11
        • 2015-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-12
        • 1970-01-01
        相关资源
        最近更新 更多