- 返回字符串,因为字符串要返回json数据类型,所以我们要写成
String json = “{“ClientId”:196401,“ClinetName”:“teller”}”;
如果后台不处理成json数据,那么需要在前端回调函数中解析为json数据,var info = JSON.parse(data);
public class ClientServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("application/json;charset=utf-8");//指定返回的格式为JSON格式
resp.setCharacterEncoding("UTF-8");//setContentType与setCharacterEncoding的顺序不能调换,否则无法解决中文乱码的问题
//返回json用输出流进行输出
PrintWriter out = resp.getWriter();
out.write("[{\"ClientId\":196401,\"ClinetName\":\"teller\"}]");
out.flush();
out.close();
}
}
- 返回对象类型
因为返回的是对象类型,所以我们需要第三方jar包帮我们把对象解析为json数据类型,第三方jar包有很多,例如FastJSON、Gson和Jackson,因为jackson的效率比较高,我选择用jackson。
public class ClientServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("application/json;charset=utf-8");// 指定返回的格式为JSON格式
resp.setCharacterEncoding("UTF-8");// setContentType与setCharacterEncoding的顺序不能调换,否则无法解决中文乱码的问题
Client client = new Client(196204, "teller");
//要用jackson2.1.5版本,否则出错
PrintWriter out = resp.getWriter();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(client);
//System.out.println(json);
out.write(json);
out.flush();
out.close();
}
}
<script type="text/javascript">
$("#search_client").click(function(){
var client_id = $("#search_input").val();
$.ajax({
url : "test", //请求url
type : "POST", //请求类型 post|get
data : {client_id:client_id},
dataType : "json", //返回数据的 类型 text|json|html--
success : function(data){ //回调函数 和 后台返回的 数据
//console.log(data);
$("#balance_input").val(data.clientName);
}
});
});
</script>