springMVC返回复杂的json格式数据方法
程序员文章站
2022-06-29 13:01:22
一、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} }
如果采用拼接方式,直接采用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格式数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
上一篇: 对于旅行类网站的个人见解
下一篇: 宋朝官服上面的白圈是什么?有什么作用