设为首页 加入收藏

TOP

Gson的使用汇总
2014-11-24 00:14:52 来源: 作者: 【 】 浏览:6
Tags:Gson 使用 汇总

当前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的转换。非常不错!


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java使用JAX-WS来写webservice时 .. 下一篇Handler总结

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: