原文地址:https://www.leshalv.net/posts/12625/
前言:
之前處理接口傳來的一堆數據,用jsonObject很難受,后面就用gosn來弄,配合這個工具體驗很好。
轉:
最近一直在對接接口,上游返回的都是JSON數據,我們需要將這些數據進行保存,我們可以解析成Map通過key的方式進行獲取,然后set到實體類對象中,說到這里我開始想吐了,這樣就造成了代碼過多,沒有可讀性,如果有100個值,要get100次,set100次嗎?所以最簡單的方式是封裝成對象,通過對象操作工具進行對象中屬性值的映射,但是封裝對象過程又繁瑣了,屬性過多極大的浪費時間,記得初中歷史學過的一段話,人和動物最根本的區別就是會不會制造和使用工具,大神和菜鳥之間的差距也莫非如此,廢話不多說了,說說如何使用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");
}
}







