Ajax使用Action中返回的Json数据的完整实例(二):action内将一个实体对象转化为json并返回

来源:互联网 发布:淘宝网购手机 编辑:程序博客网 时间:2024/06/05 18:02

实现方法:使用JSONArry对象,将装载在list里的实体类集转化为json,在jq中使用eval("("+data+")")方法将其转化为jq可读取的json数据

 

Struts.xml

<action name="myAjaxAction" class="readDocumentAction" method="myAjaxAction"><interceptor-ref name="mystack" /></action>


Action.java

public void myAjaxAction(){try{HttpServletResponse responses = ServletActionContext.getResponse();//设置编码格式,注:位置需在list前,否则utf-8格式会不对list起作用,导致乱码问题responses.setCharacterEncoding("utf-8");PrintWriter writer = responses.getWriter();//创建userInfos对象的集合List<UserInfos> list=new ArrayList<UserInfos>();//制作数据UserInfos userInfos1=new UserInfos();userInfos1.setId("001");userInfos1.setName("小明");UserInfos userInfos2=new UserInfos();userInfos2.setId("002");userInfos2.setName("小红");UserInfos userInfos3=new UserInfos();userInfos3.setId("003");userInfos3.setName("小黑");//添加数据list.add(userInfos1);list.add(userInfos2);list.add(userInfos3);//将List转换为JSONJSONArray jsonArray=JSONArray.fromObject(list);//写入到前台writer.write(jsonArray.toString());writer.flush();writer.close();}catch (Exception e) {// TODO: handle exception}}


JS

function ajaxJson(){$.ajax({        type:"post",        url:"myAjaxAction.action",        async:true,         success:function(data) {//获取返回值           alert(data);           var obj=eval("("+data+")");           alert(obj);           for(var i in obj){alert("ID:"+obj[i].id+"\nName:"+obj[i].name);             }        },        error:function(e) {          alert("验证失败!");        }      });}


HTML

<input type="button" value="测试JSON" onclick="ajaxJson()"/> 


 

原创粉丝点击