servlet返回JSON数据总结

本文详细介绍了如何在Java Web应用中使用JSON进行数据交互,包括返回字符串和对象类型的JSON数据,以及如何在前端解析这些数据。同时,展示了如何利用Jackson库将Java对象转换为JSON格式,并在前端通过Ajax请求获取并处理这些数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 返回字符串,因为字符串要返回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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值