【问题标题】:Displaying ColdFusion JSON response with jQuery使用 jQuery 显示 ColdFusion JSON 响应
【发布时间】:2012-03-10 00:18:49
【问题描述】:

我无法获取通过 AJAX 调用返回的响应 JSON 数据。这是我在 firebug 中得到的结果。

{"COLUMNS":["ID","NAME","REGION","EMAIL"],"DATA":[["1234","John Doe","West","johndoe@mydomain.com"]]}

这是我的脚本:

$.ajax({  
        url: "action.cfc?method=getEmployees&returnformat=json&queryFormat=column",         type: "POST",  
           success: function(response){
                      console.log(response);// is the data above
                      console.log(response.DATA.NAME[1]); // this doesn’t work
                      console.log(response.DATA['NAME']);//and this doesn’t work
  }
});

尝试控制台记录名称时,我在 fireBug“response.DATA 未定义”中收到此错误。我错过了什么?提前感谢您的帮助!

【问题讨论】:

    标签: jquery json coldfusion


    【解决方案1】:

    response.DATA 是一个数组数组,因此您需要对每个级别进行索引。

       console.log(response.DATA[0][1]); 
    

    编辑:如果您想使用键/值对,则需要在 CF 中创建 struct 而不是数组

    你还应该在 $.ajax 中设置 dataType:'json'

    【讨论】:

    • 如果我要在 jQuery 中使用结果,我发现返回结构而不是来自 CF Web 服务的查询很有用。
    【解决方案2】:

    也许你需要把它从一个字符串解析成一个对象:

    success: function(response){
        console.log(response);// is the data above
        response = JSON.parse(response)
        console.log(response);// is the data above
    }
    

    【讨论】:

    • 谢谢比利,刚刚遇到了另一个问题,将响应解析为一个对象解决了它。
    • 他们说IE8是新的IE7,IE7是新的IE6!它们都存在很多问题,但似乎 IE 的更高版本终于变得更加兼容 DOM。
    【解决方案3】:
    使用 $.each() jquery 函数循环接收到的响应,将能够访问从 CF 返回的数据。 对于上述回复: 例子, $.each(response,function(mainKey,mainValue){ console.log(mainKey); //显示“列”和“数据” console.log(mainValue);// 显示 ["ID","NAME","REGION","EMAIL"] & ["1234","John Doe","West","johndoe@mydomain.com"] $.each(value,function(innerKey,innerValue){ 控制台.log(innerValue); //显示'id','value'....,'1234',..等等 }); });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      相关资源
      最近更新 更多