您的位置:首页 > Web前端 > JavaScript

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

2013-08-06 15:10 976 查看
实现方法:使用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转换为JSON
JSONArray 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()"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐