Gson的使用汇总
2014-03-12 13:38
253 查看
当前json是比较流行的文本数据传输格式,结构整齐、简单。基于json的开源解析包也是很多,个人感觉比较好的两种,fastJson、Gson,fastJson号称是解析json最快的,牛逼不是吹的,我以前用过很大数据量的json去测试,fastJson解析速度确实是最快的,但是个人还是比较喜欢Gson(Gson的速度也是很快的),API简单,调用方便。下面讲解一下Gson的使用方法。
在GsonAPI中有个JsonElement类,它是JsonObject和JsonArray、JsonNull的父类,如果你知道JsonElement具体是什么对象,就可以强制转换。如下:
String test = "{\"msgBody\":{\"ticketInfos\":[{\"useType\":\"4\",\"orgCode\":\"0301\",\"xf\":\"A\",\"beginNo\":\"00001\",\"endNo\":\"99999\",\"operationDate\":\"20131116\",\"operationTime\":\"170829\"},{\"useType\":\"4\",\"orgCode\":\"0301\",\"xf\":\"B\",\"beginNo\":\"00001\",\"endNo\":\"99999\",\"operationDate\":\"20131116\",\"operationTime\":\"170829\"},{\"useType\":\"4\",\"orgCode\":\"0301\",\"xf\":\"C\",\"beginNo\":\"00001\",\"endNo\":\"99999\",\"operationDate\":\"20131116\",\"operationTime\":\"170829\"}]},\"msgHead\":{\"msgId\":\"X420131116180838\",\"operateOrgCode\":\"0301\",\"workDate\":\"20131116\",\"workTime\":\"180838\",\"workType\":\"X4\"}}";
JsonParser parser = new JsonParser();
//这里我知道它是一个jsonObject,那么我就强制转换了,当然最好你去instanceOf一下
JsonObject job = (JsonObject) parser.parse(test);
JsonArray object = (JsonArray) ((JsonObject) job.get("msgBody"))
.get("ticketInfos");
String back = object.toString();
System.out.println(back);
上面是普通的json解析,貌似跟其他解析工具差不多,但是它还有更强大的功能就是Gson这个类,有一系列的toJson、fromJson方法,很多都是采用反射机制实现的,你想要把json字符串转换成什么对象只需要传入class类型就OK了。不管是多复杂的json格式,你只要按照json格式定义一个对象,如下代码中
message = new Message();
Gson gson=new Gson();
message=gson.fromJson(json, Message.class);
message就是按照json格式定义了msgBody、msgHead对象。直接通过Gson这个类,简单几行代码就完成了json字符串到JavaBean的转换。非常不错!
在GsonAPI中有个JsonElement类,它是JsonObject和JsonArray、JsonNull的父类,如果你知道JsonElement具体是什么对象,就可以强制转换。如下:
String test = "{\"msgBody\":{\"ticketInfos\":[{\"useType\":\"4\",\"orgCode\":\"0301\",\"xf\":\"A\",\"beginNo\":\"00001\",\"endNo\":\"99999\",\"operationDate\":\"20131116\",\"operationTime\":\"170829\"},{\"useType\":\"4\",\"orgCode\":\"0301\",\"xf\":\"B\",\"beginNo\":\"00001\",\"endNo\":\"99999\",\"operationDate\":\"20131116\",\"operationTime\":\"170829\"},{\"useType\":\"4\",\"orgCode\":\"0301\",\"xf\":\"C\",\"beginNo\":\"00001\",\"endNo\":\"99999\",\"operationDate\":\"20131116\",\"operationTime\":\"170829\"}]},\"msgHead\":{\"msgId\":\"X420131116180838\",\"operateOrgCode\":\"0301\",\"workDate\":\"20131116\",\"workTime\":\"180838\",\"workType\":\"X4\"}}";
JsonParser parser = new JsonParser();
//这里我知道它是一个jsonObject,那么我就强制转换了,当然最好你去instanceOf一下
JsonObject job = (JsonObject) parser.parse(test);
JsonArray object = (JsonArray) ((JsonObject) job.get("msgBody"))
.get("ticketInfos");
String back = object.toString();
System.out.println(back);
上面是普通的json解析,貌似跟其他解析工具差不多,但是它还有更强大的功能就是Gson这个类,有一系列的toJson、fromJson方法,很多都是采用反射机制实现的,你想要把json字符串转换成什么对象只需要传入class类型就OK了。不管是多复杂的json格式,你只要按照json格式定义一个对象,如下代码中
message = new Message();
Gson gson=new Gson();
message=gson.fromJson(json, Message.class);
message就是按照json格式定义了msgBody、msgHead对象。直接通过Gson这个类,简单几行代码就完成了json字符串到JavaBean的转换。非常不错!
相关文章推荐
- MAVEN使用过程中遇到的问题汇总
- [SQL]详解CUBE和ROLLUP区别<使用rollup或cube通过交叉列可产生高级汇总结果集>
- Android Studio 使用技巧汇总
- spring使用中问题汇总
- IDEA使用教程汇总
- git使用过程中遇到的问题汇总
- 使用CUBE和ROLLUP对数据进行汇总
- MFC数据类型及使用汇总
- gson使用在android使用例子
- 使用Gson结合泛型类灵活解析JSON数据
- C语言小知识点 汇总6 scanf的使用
- Keras使用过程问题汇总
- iOS中状态栏的基本使用方法汇总
- JavaScript使用心得汇总:从BOM和DOM谈起
- hadoop学习中使用到的相关资料汇总
- Gson使用方法之Tree Representation
- gson简单使用及下载地址
- MySQL 数据库备份种类以及经常使用备份工具汇总
- cxGrid使用汇总
- CListCtrl使用技巧汇总