后台将对象转换为json格式,前台js解析json数据,将字符串转化为数组

来源:互联网 发布:昨天今天明天 知乎 编辑:程序博客网 时间:2024/04/29 13:15

后台Action

public void selectReadersById1(){
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response= ServletActionContext.getResponse();
String id=request.getParameter("readerId");                             //接收jsp页面传的参数读者id
Readers readers=readersBiz.selectReaderById(Integer.parseInt(id));
if (readers!=null) {

//标红部分为精华,将对象转换为json格式
JSONArray jsonarray = JSONArray.fromObject(readers);
       response.setContentType("text/html;charset=UTF-8");
       try 
       {
           response.getWriter().print(jsonarray);
           System.out.println(jsonarray);
       } 
       catch (IOException e) 
       {
           e.printStackTrace();
       }

}
}

前台页面.jsp

$("#readerId").blur(function(){
var readerId=$("#readerId").val();
$.ajax({
  type:"post",
  url:"<%=request.getContextPath()%>/selectReadersById1.action",
  data:{"readerId":readerId},     //传参数读者id至后台
  dataType:"text",
  success:function(data)
  {

alert(data);                          //打印结果可以看出data是一个json格式的字符串

//标红部分为精华部分,将json格式的字符串转化为数组
  var myobj=eval(data);  
for(var i=0;i<myobj.length;i++){  
  $("#readerName").val(myobj[i].name);  
//   alert(myobj[i].age);  
}  

  }
  })
})


注:eval()    将服务器端构建好的JSON数据转化为可用的JavaScript对象,在转化的时候需要将JSON字符串的外面包装一层圆括号
       如:var jsonObject = eval("(" + jsonFormat + ")");



0 0
原创粉丝点击