首页 > 编程 > Java > 正文

springMVC返回复杂的json格式数据方法

2019-11-26 10:09:02
字体:
来源:转载
供稿:网友

一、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格式数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表