欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-17 17:17:40
一、springmvc返回json格式数据常用的写法是使用@responsebody注解,在每一个方法前加上这个注解,springmvc的json解析机制会自动把返回值(o...

一、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}
}

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

如果采用拼接方式,直接采用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格式数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。