ajax请求处理数据

问题:ajax请求
服务返回json数据data:

[{"id":"1","des":"手机数码"},{"id":"172934bd636d485c98fd2d3d9cccd409","des":"运动户外"},{"id":"2","des":"电脑办公"},{"id":"3AB247CB5B7F4A2A8079A8AA01ADDFD5","des":"生活用品"},{"id":"480592C5703B4A16B230CB51292E152E","des":"居家用品"},{"id":"5","des":"图书音像"},{"id":"6","des":"母婴孕婴"},{"id":"887C79BD93904DAD8EE081B8082B684D","des":"服装"},{"id":"afdba41a139b4320a74904485bdb7719","des":"汽车用品"},{"id":"BD4FFD210159463F96D1E1F02C7307B0","des":"生活用户"}]

客户端处理:

$    .each(    data,function(index,value) {

}
);

为什么这种处理方式会出现类型错误,提示data无法被遍历,原因是没有length属性。。

而我必须需要使用

var str="dataArrray="+data;
eval(str);
$    .each(    dataArrray,function(index,value) {

}
);

这种方式去处理数据。。

不是ajax返回的jason数组可以直接处理的吗??

阅读 2.4k
2 个回答

我猜你没约定数据格式为json,所以jq没帮你做解析。

解析json不要eval!!!

var res = '[{"id":"1","des":"手机数码"},{"id":"172934bd636d485c98fd2d3d9cccd409","des":"运动户外"},{"id":"2","des":"电脑办公"},{"id":"3AB247CB5B7F4A2A8079A8AA01ADDFD5","des":"生活用品"},{"id":"480592C5703B4A16B230CB51292E152E","des":"居家用品"},{"id":"5","des":"图书音像"},{"id":"6","des":"母婴孕婴"},{"id":"887C79BD93904DAD8EE081B8082B684D","des":"服装"},{"id":"afdba41a139b4320a74904485bdb7719","des":"汽车用品"},{"id":"BD4FFD210159463F96D1E1F02C7307B0","des":"生活用户"}]';

var dataArrray = JSON.parse(res);

console.log(dataArrray);

ajax请求时加上字段 dataType: 'json'

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题