springMVC返回復(fù)雜的json格式數(shù)據(jù)方法
一、springMVC返回json格式數(shù)據(jù)常用的寫法是使用@ResponseBody注解,在每一個(gè)方法前加上這個(gè)注解,springMVC的json解析機(jī)制會(huì)自動(dòng)把返回值(Object類型的對(duì)象)轉(zhuǎn)換為json格式的數(shù)據(jù),如果返回的json對(duì)象比較復(fù)雜,每一個(gè)方法都要定義很多對(duì)象,會(huì)給開(kāi)發(fā)帶來(lái)很大的工作量,以下介紹一種方法,直接使用json對(duì)象設(shè)置數(shù)據(jù)并放回。
二、當(dāng)遇到以下json格式數(shù)據(jù)是,如果差用@ResponseBody方式需要?jiǎng)?chuàng)建多個(gè)Java對(duì)象。
{ "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拼接,不用創(chuàng)建對(duì)象返回,代碼如下:
@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,在編輯代碼時(shí)結(jié)構(gòu)不清晰,不是特殊情況,不建議使用。
以上這篇springMVC返回復(fù)雜的json格式數(shù)據(jù)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)
MyBatis提供了一個(gè)用于操作數(shù)據(jù)庫(kù)的SqlRunner工具類,對(duì)JDBC做了很好的封裝,本文主要介紹了Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐
這篇文章主要給大家介紹了關(guān)于利用MyBatis-Plus靈活處理JSON字段的技巧與最佳實(shí)踐,Mybatis-Plus可以很方便地處理JSON字段,在實(shí)體類中可以使用@JSONField注解來(lái)標(biāo)記JSON字段,需要的朋友可以參考下2024-07-07