json从servlet传数据到jsp,用jquery和ajax获取数据

huyc 发布于 2013/12/05 17:41
阅读 11K+
收藏 2
servlet中的代码块:
List<Recruit> list = Factory.getStudentDaoInstance().queryEmpInfo();
	JSONArray jArray = new JSONArray();
       for(int i=0;i<list.size();i++){			
       Recruit recruit = list.get(i); 
       JSONObject jObject = new JSONObject();
      jObject.put("position", recruit.getPosition());
      jObject.put("number", recruit.getNumber());
      jObject.put("pay", recruit.getPay()); 
      jObject.put("date", recruit.getDate());
      jObject.put("status", recruit.getStatus());
      jObject.put("place", recruit.getPlace());
      jObject.put("introduction", recruit.getIntroduction());
      jArray.put(jObject);
    }
	out.print(jArray);
  }catch(Exception e){
      e.printStackTrace();
}

jsp中的代码块:

$.ajax({
	    url:"StudentServlet?method=2",
            type:"post",
            success:function(data){
               alert(data);
               $.each(data, function(id,val){      
                      alert(id)
                      alert(val.position);
                 });  
       }

界面运行后:首先alert这是$ajax之前的,

然后是跳出:

说明json已经到后台,

但是:紧接着出现了这个

然后是这个

求解,为啥事这种情况?????





加载中
0
iSea
iSea
因为你后面有一个  {}  没有键值,所以会出现没定义
iSea
iSea
data = eval("("+data+")");
iSea
iSea
目测你的问题应该是返回的数据是html导致的,应该用eval()函数强制转换一下为json数据
0
倪闯
倪闯

1.servlet中应该把jArray转换成字符串后再传递到前端,应该为out.print(jArray.toString());

2.ajax解析的时候应该加上eval("("+data+")")。

返回顶部
顶部