原文地址: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"); }
}