springMVC返回復(fù)雜的json格式數(shù)據(jù)方法
一、springMVC返回json格式數(shù)據(jù)常用的寫法是使用@ResponseBody注解,在每一個方法前加上這個注解,springMVC的json解析機制會自動把返回值(Object類型的對象)轉(zhuǎn)換為json格式的數(shù)據(jù),如果返回的json對象比較復(fù)雜,每一個方法都要定義很多對象,會給開發(fā)帶來很大的工作量,以下介紹一種方法,直接使用json對象設(shè)置數(shù)據(jù)并放回。
二、當(dāng)遇到以下json格式數(shù)據(jù)是,如果差用@ResponseBody方式需要創(chuàng)建多個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拼接,不用創(chuàng)建對象返回,代碼如下:
@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,在編輯代碼時結(jié)構(gòu)不清晰,不是特殊情況,不建議使用。
以上這篇springMVC返回復(fù)雜的json格式數(shù)據(jù)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
簡述springboot及springboot cloud環(huán)境搭建
這篇文章主要介紹了簡述springboot及springboot cloud環(huán)境搭建的方法,包括spring boot 基礎(chǔ)應(yīng)用環(huán)境搭建,需要的朋友可以參考下2017-07-07
java實現(xiàn)追加內(nèi)容到文件末尾的常用方法分析
這篇文章主要介紹了java實現(xiàn)追加內(nèi)容到文件末尾的常用方法,結(jié)合具體實例分析了java文件流及寫入指針等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
jedis獲取redis中二進(jìn)制圖片轉(zhuǎn)Base64方式
這篇文章主要介紹了jedis獲取redis中二進(jìn)制圖片轉(zhuǎn)Base64方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot中的FailureAnalyzer使用詳解
這篇文章主要介紹了SpringBoot中的FailureAnalyzer使用詳解,Spring Boot的FailureAnalyzer是一個接口,它用于在Spring Boot應(yīng)用啟動失敗時提供有關(guān)錯誤的詳細(xì)信息,這對于開發(fā)者來說非常有用,因為它可以幫助我們快速識別問題并找到解決方案,需要的朋友可以參考下2023-12-12

