servlet返回JSON数据总结

  • 返回字符串,因为字符串要返回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();
	}
}
  • 页面发送的ajax请求如下:
<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>
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值