原文地址:https://www.leshalv.net/posts/12625/
前言:
之前處理接口傳來的一堆數據,用jsonObject很難受,后面就用gosn來弄,配合這個工具體驗很好。
轉:
最近一直在對接接口,上游返回的都是JSON
數據,我們需要將這些數據進行保存,我們可以解析成Map
通過key
的方式進行獲取,然后set
到實體類對象中,說到這里我開始想吐了,這樣就造成了代碼過多,沒有可讀性,如果有100個值,要get
100次,set
100次嗎?所以最簡單的方式是封裝成對象,通過對象操作工具進行對象中屬性值的映射,但是封裝對象過程又繁瑣了,屬性過多極大的浪費時間,記得初中歷史學過的一段話,人和動物最根本的區別就是會不會制造和使用工具,大神和菜鳥之間的差距也莫非如此,廢話不多說了,說說如何使用GsonFormat
這個插件完成JSON
和JavaBean
之間的轉換吧!
1.安裝GsonFormat
Ctrl+Alt+S
打開設置界面,點擊Plugins
,點擊Browse repositories...
在搜索框輸入GsonFormat
,點擊Install
安裝
安裝成功后,點擊Restart IntelliJ IDEA
重啟IDEA
2.使用GsonFormat
首先建立一個類,Alt+S
打開GsonFormat
頁面,將你要轉換的JSON
串復制進去,你可以點擊右上角Format
格式化一下,然后點擊左下角OK
彈出Virgo Model頁面,你可以選擇哪個不生成,選擇數據類型,定義屬性名稱,點擊OK
Bean
就這樣生成了,同時還生成了get()
和set()
方法
3.如何調用
Gson gson1 = new Gson(); StationBean sta = gson1.fromJson(ret_parms, StationBean.class); if(sta.getCode()==200){ List<EntityBean> list = sta.getEntity();
}
4.gson jar包 :http://repo1.maven.org/maven2/com/google/code/gson/gson/ ,可以選2.8.5的,
----------------------------------------------------------------2019-12-30 更新 另一種更便捷的方法,但是數據大的時候不推薦-------------------------------------------------------
List<Map<String, Object>> maps = JSON.parseObject(res, new TypeReference<List<Map<String, Object>>>() {}); 用這個可以不用寫javabean,也能容易分析數據
例子:
String str = "{\"flag\": true,\"code\": 200,\"message\": \"操作成功\",\"entity\": [{\"aaa\": \"沙發上\",\"bbb\": 212312}]}"; JSONObject retMap = JSONObject.parseObject(str); if(retMap.getString("code").equals("200")){ String res = retMap.getString("entity"); List<Map<String, Object>> maps = JSON.parseObject(res, new TypeReference<List<Map<String, Object>>>() {}); for(Map result : maps){ result.get("aaa"); result.get("bbb"); }
}