使用jQuery显示ColdFusion JSON响应

使用jQuery显示ColdFusion JSON响应,jquery,json,coldfusion,Jquery,Json,Coldfusion,我在获取通过AJAX调用返回的响应JSON数据时遇到问题。这是我在firebug中得到的信息 {"COLUMNS":["ID","NAME","REGION","EMAIL"],"DATA":[["1234","John Doe","West","johndoe@mydomain.com"]]} 这是我的剧本: $.ajax({ url: "action.cfc?method=getEmployees&returnformat=json&queryForma

我在获取通过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未定义”中遇到此错误。我错过了什么?提前感谢您的帮助

可能需要将其从字符串解析为对象:

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

可能需要将其从字符串解析为对象:

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

response.DATA
是一个数组数组,因此需要为每个级别编制索引

   console.log(response.DATA[0][1]); 
编辑:如果要使用键/值对,则需要在CF中创建
struct
,而不是数组


您还应该在$.ajax响应中设置数据类型:'json'

   console.log(response.DATA[0][1]); 
Looping through the response recieved, using $.each() jquery function, will be able to access the data returned from CF. For the above response: Example, $.each(response,function(mainKey,mainValue){ console.log(mainKey); //displays 'COLUMNS' & 'DATA' console.log(mainValue);// displays ["ID","NAME","REGION","EMAIL"] & ["1234","John Doe","West","johndoe@mydomain.com"] $.each(value,function(innerKey,innerValue){ console.log(innerValue); //displays 'id','value'....,'1234',..and so on }); }); 编辑:如果要使用键/值对,则需要在CF中创建
struct
,而不是数组

您还应该在$.ajax中设置数据类型:'json'

Looping through the response recieved, using $.each() jquery function, will be able to access the data returned from CF. For the above response: Example, $.each(response,function(mainKey,mainValue){ console.log(mainKey); //displays 'COLUMNS' & 'DATA' console.log(mainValue);// displays ["ID","NAME","REGION","EMAIL"] & ["1234","John Doe","West","johndoe@mydomain.com"] $.each(value,function(innerKey,innerValue){ console.log(innerValue); //displays 'id','value'....,'1234',..and so on }); }); 通过使用$.each()jquery函数循环接收到的响应,将能够访问从CF返回的数据。 关于上述答复: 例子, $.each(响应、函数(主键、主值){ console.log(mainKey);//显示“列”和“数据” console.log(mainValue);//显示[“ID”、“NAME”、“REGION”、“EMAIL”]&[“1234”、“John Doe”、“West”johndoe@mydomain.com"] $.each(值,函数(innerKey,innerValue){ log(innerValue);//显示'id','value','1234',等等 }); }); 通过使用$.each()jquery函数循环接收到的响应,将能够访问从CF返回的数据。 关于上述答复: 例子, $.each(响应、函数(主键、主值){ console.log(mainKey);//显示“列”和“数据” console.log(mainValue);//显示[“ID”、“NAME”、“REGION”、“EMAIL”]&[“1234”、“John Doe”、“West”johndoe@mydomain.com"] $.each(值,函数(innerKey,innerValue){ log(innerValue);//显示'id','value','1234',等等 }); });
如果要在jQuery中使用结果,我发现从CF web services返回结构而不是查询很有用。如果要在jQuery中使用结果,我发现从CF web services返回结构而不是查询很有用。谢谢Billy,刚刚遇到另一个问题,将响应解析成一个对象就解决了。他们说IE8是新的IE7,IE7是新的IE6!它们都有很多问题,但似乎IE的更高版本最终变得更符合DOM。感谢Billy,刚刚遇到另一个问题并将响应解析为一个对象解决了它。他们说IE8是新的IE7,IE7是新的IE6!它们都有很多问题,但似乎IE的更高版本最终变得更符合DOM。