JSONObject和Gson用法详解
来源:互联网 发布:淘宝商品品牌 编辑:程序博客网 时间:2024/05/16 10:17
JSONObject和Gson用法详解
#
#
1.JSONObject使用方法详解
所需jar包
json-lib-2.4-jdk15.jar commons-beanutils-1.8.3.jarcommons-collections-3.2.1.jarcommons-lang-2.5.jarcommons-logging-1.1.1.jarezmorph-1.0.6.jar
一般情况下除JSONObject的jar之外还需要依赖的其他5个jar包,如上所示
其中 JSONObject 目前最新的版本为2.4,其他版本下载地址为:http://sourceforge.net/projects/json-lib/files/json-lib/
常用的情景和实现方式
a.前台封装Json格式的数据后转成字符串(不包含复杂对象),后台用字符串接收,转成对应的类
前台实现
var params = { 'page': 1, 'rows': 10, 'pickUpTmStr': '2017-09-15 15:00', 'sendBackTmStr': '2017-09-16 15:00', 'day': '1', 'id': '123', 'sortType': 1};$.ajax({ type: "POST", url: "${ctx}/w/com/selectRentalCarForPage.json.json", data: {'paramsStr' : JSON.stringify(params)}, dataType:'json', success: function(msg){ if(msg.resultCode=="SUCCESS"){ alert(msg.resultMessage); }else{ closeAllDialog(); alert(msg.resultMessage); } }});
后台实现
@RequestMapping(value = "/selectRentalCarForPage.json", method = RequestMethod.POST)public @ResponseBody IPageModule selectRentalCarForPage(HttpServletRequest request,HttpServletResponse response, ModelMap model,String paramsStr) { IPageModule iPageModule =null; JSONObject jObjf = JSONObject.fromObject(paramsStr); Map<String,Object> paramsMap = (Map<String,Object>)JSONObject.toBean(jObjf, Map.class); try { iPageModule = rentalCarService.selectRentalCarForPage(paramsMap); } catch (Exception e) { e.printStackTrace(); } return iPageModule;}
此为将前台接收的参数转为Map,如需要转成实体类,则可以如下实现:
JSONObject jObjf = JSONObject.fromObject(studentStr);Student student = (RentalCarIntent)JSONObject.toBean(jObjf, Student.class);
注:若是将参数转为对应的实体类对象,前台封装参数时的key必须要与实体类中字段对应,否则会报错
b.前台封装Json格式的数据后转成字符串(不包含复杂对象),后台用字符串接收,转成对应的类
前台实现
var params = { 'page': 1, 'rows': 10, 'pickUpTmStr': '2017-09-15 15:00', 'sendBackTmStr': '2017-09-16 15:00', 'day': '1', 'id': '123', 'sortType': 1 'student':{ 'name':'小明', 'sexCd':10 }};$.ajax({ type: "POST", url: "${ctx}/w/com/selectRentalCarForPage.json.json", data: {'paramsStr' : JSON.stringify(params)}, dataType:'json', success: function(msg){ if(msg.resultCode=="SUCCESS"){ alert(msg.resultMessage); }else{ closeAllDialog(); alert(msg.resultMessage); } }});
后台实现
@RequestMapping(value = "/selectRentalCarForPage.json", method = RequestMethod.POST)public @ResponseBody IPageModule selectRentalCarForPage(HttpServletRequest request,HttpServletResponse response, ModelMap model,String paramsStr) { IPageModule iPageModule =null; JSONObject jObjf = JSONObject.fromObject(paramsStr); classMap.put("student", Student.class); Map<String,Object> paramsMap = (Map<String,Object>)JSONObject.toBean(jObjf, Map.class,classMap); try { iPageModule = rentalCarService.selectRentalCarForPage(paramsMap); } catch (Exception e) { e.printStackTrace(); } return iPageModule;}
此为将前台接收的参数转为Map,如需要转成实体类,则可以如下实现:
JSONObject jObjf = JSONObject.fromObject(studentStr);Student student = (Student)JSONObject.toBean(jObjf, Student.class);
注:若是将参数转为对应的实体类对象,前台封装参数时的key必须要与实体类中字段对应,否则会报错,包括类中复杂对象名称,都要一一对应
另注:classMap用法介绍
/**字符串转java bean时,字符串中如果出现类似List , Map ,ArrayList、自定义的类型等复杂类型,解决方法如下:*1.Map<String, Class> classMap = new HashMap<String, Class>();*2.classMap.put("对象的那个特殊的属性名(集合)", 集合中的对象名.class);*3.最后加上一个参数(JudgementRestaurant)JSONObject.toBean(jObjf, JudgementRestaurant.class,classMap);*/
2. Gson使用方法详解
所需jar包
gson-2.3.1.jar
常用的情景和实现方式
a.前台封装Json格式的数据后转成字符串(不包含复杂对象),后台用字符串接收,转成对应的类
前台实现
同上(与JSONObject封装方法一致)
后台实现
//代码基本一致,只是转换稍有不同JsonObject obj = (JsonObject)new Gson().fromJson(zhouStr, JsonObject.class);JudgementFleet judgementFleet = new Gson().fromJson(obj.get("fleet"), JudgementFleet.class);//或者JudgementFleet judgementFleet = (JudgementFleet)new Gson().fromJson(zhouStr, JudgementFleet.class);//listJSONObject jsonObject = JSONObject.fromObject(zhouStr);List<ProductDuty> productDutyList= (List<ProductDuty>)JSONArray.toCollection(jsonObject.getJSONArray("productDutyList"), ProductDuty.class);
重点发现
使用Json将字符串转换成实体类时,它会将所有的整数都变成浮点型,即所有的整数会加上’.0’,会导致后台判断出错,所以使用json的时候请格外注意,除此区别,没有复杂对象封装时,两者的转换效果是一样的
阅读全文
0 0
- JSONObject和Gson用法详解
- JsonObject和Gson详解
- Gson和JsonObject
- 4.2 JSONObject 和 GSON 解析 JSON 数据详解
- JSONObject用法详解
- JSONObject和JSONArray详解
- Gson用法详解
- Gson用法详解
- JSONArray和JSONObject的用法
- Gson将字符串转换成JsonObject和JsonArray
- Gson将字符串转换成JsonObject和JsonArray
- Gson与JSONObject
- 解析JSON-JSONObject/GSON
- Gson 和 json 详解
- Gson 和 json 详解
- FastJSON、Jackson和Gson用法
- JSONObject用法
- JSONObject用法
- EasyUI DataGrid 隐藏其中一列
- 字符流中第一个不重复的字符
- go语言心跳响应
- MyEclipse/Eclipse导入sun.misc.BASE64Encoder jar包步骤
- 做人、作诗
- JSONObject和Gson用法详解
- 机器学习模型的容量,过拟合与欠拟合
- notepadd++ 去重插件
- java值传递
- shoppping list
- java中解析json多层嵌套
- SQL优化从6分半到秒出
- C#之构造函数的学习
- 初步学习mysql