一、springMVC返回json格式数据常用的写法是使用@ResponseBody注解,在每一个方法前加上这个注解,springMVC的json解析机制会自动把返回值(Object类型的对象)转换为json格式的数据,如果返回的json对象比较复杂,每一个方法都要定义很多对象,会给开发带来很大的工作量,以下介绍一种方法,直接使用json对象设置数据并放回。
二、当遇到以下json格式数据是,如果差用@ResponseBody方式需要创建多个Java对象。
{ "total":2,"list":[ { "person":{"name":"eakom0","key":0},"msg":{"cod":0,"name":"eakom0"} },{ "person":{"name":"eakom1","key":1},"msg":{"cod":1,"name":"eakom1"} } ],"attachment":{"name":"附件","version":1} }
如果采用拼接方式,直接采用JsonObject拼接,不用创建对象返回,代码如下:
@RequestMapping("returnJson") public void returnJson (HttpServletRequest request,HttpServletResponse response){ JSONObject json = new JSONObject(); json.element("total",2); List<Map<String,JSONObject>> list=new ArrayList<Map<String,JSONObject>>(); for(int i=0;i<2;i++){ JSONObject person=new JSONObject(); person.element("name","eakom"+i); person.element("key",i); JSONObject msg=new JSONObject(); msg.element("name","eakom"+i); msg.element("cod",i); Map<String,JSONObject> map=new HashMap<String,JSONObject>(); map.put("person",person); map.put("msg",msg); list.add(map); } json.element("list",list); JSONObject attachment=new JSONObject(); attachment.element("name","附件"); attachment.element("version",1); json.element("attachment",attachment); responseDatagrid(response,json); } public void responseDatagrid(HttpServletResponse response,JSONObject jObject) { response.setContentType("application/json"); response.setHeader("Cache-Control","no-store"); try { PrintWriter pw=response.getWriter(); pw.write(jObject.toString()); pw.flush(); } catch (IOException e) { e.printStackTrace(); } }
三、用这种放返回json,在编辑代码时结构不清晰,不是特殊情况,不建议使用。
以上这篇springMVC返回复杂的json格式数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
您可能感兴趣的文章:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。