使用ajax接收后台发送过来的json数据方法
今天给大家带来一个简单的使用ajax接收后台返回json格式的demo
废话不多说直接上代码
后台代码
packagecom.sidan.outjson;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.sidan.jsonutil.GetJson;
/**
*ServletimplementationclassOutJson
*/
@WebServlet("/OutJson")
publicclassOutJsonextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
/**
*@seeHttpServlet#HttpServlet()
*/
publicOutJson(){
super();
//TODOAuto-generatedconstructorstub
}
/**
*@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doPost(request,response);
}
/**
*@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
response.setCharacterEncoding("UTF-8");
PrintWriterout=response.getWriter();
Strings=GetJson.getJson();
out.print(s);
}
}
Pserson类
packagecom.sidan.jsonutil;
publicclassPerson{
privateStringname;
privateStringsex;
privateintage;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
}
将数据包装成json格式类(数据直接是循环添加的所以一样这里是为了简单)
packagecom.sidan.jsonutil;
importjava.util.ArrayList;
publicclassGetJson{
publicstaticStringgetJson(){
returnjson().toString();
}
publicstaticStringBufferjson(){
StringBuffersb=newStringBuffer();
ArrayListarr=initArray();
intx=0;
sb.append("[");
for(Personp:arr){
sb.append("{");
sb.append("\"name\"");
sb.append(":");
sb.append("\""+p.getName()+"\"");
sb.append(",");
sb.append("\"age\"");
sb.append(":");
sb.append("\""+p.getAge()+"\"");
sb.append(",");
sb.append("\"sex\"");
sb.append(":");
sb.append("\""+p.getSex()+"\"");
sb.append("}");
if(x!=arr.size()-1){
sb.append(",");
}
x++;
}
sb.append("]");
returnsb;
}
publicstaticArrayListinitArray(){
ArrayListarr=newArrayList();
for(inti=0;i<10;i++){
Personp=newPerson();
p.setName("sdchen");
p.setAge(20);
p.setSex("man");
arr.add(p);
}
returnarr;
}
}
jsp页面代码
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> Inserttitlehere $(function(){ $("#btn").click(function(){ varurl="OutJson"; $.ajax({ url:url, type:"post", dataType:"json", error:function(XMLHttpRequest,textStatus,errorThrown){ alert(XMLHttpRequest); alert(textStatus); alert(errorThrown); }, success:function(data){ $.each(data,function(idx,obj){ varli=document.createElement("li"); li.innerHTML=""+obj.name+""; document.getElementById("ul1").appendChild(li); }); } }); }); });
写这个demo也费了很大劲,毕竟是新手,也从错误中学到了很多,比如dataType写成datatype时ajax默认接收的数据是为text这样导致我总是循环不了,还有就是json数据的格式是非常严谨的
就因为最后多了一个逗号就导致总是出错,并且循环不了,最后将错误打印出来才知道这个格式是错了的
以上这篇使用ajax接收后台发送过来的json数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。