欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2021-06-21 08:44:49|栏目:JAVA代码|点击:

一、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,在编辑代码时结构不清晰,不是特殊情况,不建议使用。

上一篇:sonar-scanner连接sonarquebe7的sonar.java.binaries问题的解决方案

栏    目:JAVA代码

下一篇:详解MyBatis日志如何做到兼容所有常用的日志框架

本文标题:springMVC返回复杂的json格式数据方法

本文地址:http://www.codeinn.net/misctech/145835.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有