求教:使用json传值出现undefined

酱油不是油... 2015-12-09 07:54:42
[b]Servlet代码如下:
Map housesMap = houseService.getHousesByCondition
(title,price,areaid,streetid,typeid,floorage,pageIndex);

System.out.println("------");
for(House h : (List<House>)housesMap.get("houses")){
System.out.println(h.getStreet().getArea().getAreaname()+"-----"); //这里打印出来是有值的
}
System.out.println("------");

String mapStr = JSON.toJSONString(housesMap);
System.out.println(mapStr);
out.print(mapStr);

jsp页面的jquery代码如下:
$.post('GetHousesAction',$("form").serialize(),function(data){
$("TBODY").empty();
var arr = eval("(" + data + ")");
var houses = arr.houses;
for( var i = 0; i< houses.length;i++){
alert(houses[i].street.area.areaname);
}
});

map里面装了pageIndex.pageCount(这两个分页用的,没啥问题),还有一个房子集合List<House>,
在别的页面单独把List转成JSON字符串传到前台是没有问题,现在把map转成JSON字符串传到前台就
有问题了,假如List<House>里面有一个房子,显示正常,如果有两个,页面上取不到第二个房子的街道(街道是房子的一个属性)
的区(区是街道的一个属性),如果有三个房子,第三个房子根本就取不到,求教



[/b]
...全文
725 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
酱油不是油... 2015-12-25
  • 打赏
  • 举报
回复
引用 1 楼 街头小贩的回复:
你servlet输出的json字符串没问题!哪就出在js解析上了。 你的方法太拙劣了, 1.为什么不让servlet直接输出application/json的响应类型,这样就免了前端js的: eval("(" + data + ")"); 2.为什么不用jquery去遍历json呢?
小弟是菜鸟啊,您说的我也不知道怎么弄
香蕉猪 2015-12-11
  • 打赏
  • 举报
回复
json的获取,拼装的问题。
  • 打赏
  • 举报
回复
$.post('GetHousesAction',$("form").serialize(),function(data){ alert(data) 下检查数据再说。。出现undefined说明对象没有那个属性
一叶飞舟 2015-12-10
  • 打赏
  • 举报
回复
1、确定Servlet返回的json是否规范 2、前端解析json的时候,是否符合返回的key-value。
hch126163 2015-12-10
  • 打赏
  • 举报
回复
先看 服务器响应的 json 字符串 是否正确
街头小贩 2015-12-09
  • 打赏
  • 举报
回复
你servlet输出的json字符串没问题!哪就出在js解析上了。 你的方法太拙劣了, 1.为什么不让servlet直接输出application/json的响应类型,这样就免了前端js的: eval("(" + data + ")"); 2.为什么不用jquery去遍历json呢?

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧