android:json解析库的选择

本文转自:http://iandroiddev.com/post/2011-10-08/5646446

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScriptStandard ECMA-262 3rd Edition - December 1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

Android的SDK中包含四个与JSON相关的类和一个Exceptions:JSONArray、JSONObject、JSONStringer、JSONTokener、JSONException。通过这5个类我们就可以自行对Json进行解析(使用很简单,可以网上搜索使用方法或者参照Android SDK),另外Google在Android的SDK中放入了JsonReader和JsonWriter来方便我们读写Json。但是通过他们读写Json还都要停留到手工操作上,无法直接实现Json字符串到对象、对象到Json字符串的转换,例如解析Json需要通过Key值一个一个的取Value,工作量大不说,还增加了出错的几率。有没有办法可以:直接实现Json字符串到对象、对象到Json字符串的转换?

在Java EE中使用最广泛的是Jackson Json(据说是集成到Spring中的,我不太清楚),使用非常方便而且效率极高;另外还有两个比较有名气的是Gson和JSON-lib,某些大侠已经对它们做了对比实验,结论如下执行效率:Jackson>Gson>JSON-lib,但是鉴于我们要将解析库集成到Android应用当中,我们还要考虑一下嵌入的库的体积,分别取他们的最新版本:

jackson-all-1.9.0.jar 1.1MB

gson-1.7.1.jar 174KB

json-lib-2.4-jdk15.jar 159KB (2010年12月开始已经停止更新了)

通过这个比较我们几乎可以直接排除掉jackson(为了解析JSON方便而让软件增加1.1MB?),而json lib执行效率低下且已经停止了更新,我们也不希望选用。另外jackson生于Jave EE,完全符合java bean惯例是对getter进行序列化,而gson是对成员变量field进行序列化,Android恰恰是推荐开发者直接使用成员变量访问而不是用setter、getter。最终我们选择了Google出品的Gson,至于Gson如何使用,欢迎关注下一篇文章。

相关参考:

android SDK:android json解析

gson: android:使用Gon解析解析json

jackson: Jackson 框架,轻易转换JSON(一)

json-lib: JSON-lib框架,转换JSON、XML不再困难

更多相关文章

  1. 分支和循环(二)(零基础学习C语言)
  2. android servicemanager与binder源码分析三------如何进入内核通
  3. Android之WebView总结
  4. 内存管理 Memory Management for Android(安卓)Apps
  5. Android之Context理解篇
  6. android之MediaPalyer
  7. Android(安卓)中Intent的putExtra()方法的值传递
  8. android调用springmvc写的restful
  9. Android架构组件-ViewModel

随机推荐

  1. Qt for Android(安卓)环境搭建方法
  2. [置顶] Retrofit2使用方式和源码解析
  3. 为什么没有好用的Android游戏引擎?
  4. 《Android Studio开发实战 从零基础到App
  5. 腾讯微博java(android) api 包含95%接口,
  6. Android 动画分析之翻转效果
  7. Android 如何动态设置View参数,LayoutPara
  8. Android通过访问网页查看网页源码实例详
  9. Android:Activity的生命周期
  10. 在Android的 设置->显示 中增加控制屏幕