• 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  (注:官方下载的zip包含了lib、src、doc等,原作者仅指lib且发表于2011年10月8日,与当前数据会有出入)

    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如何使用,欢迎关注下一篇文章

  • 相关阅读:
    棋盘问题 简单搜索DFS
    Equivalent Strings
    素数环
    LeetCode Maximum Product Subarray
    UVA 725 – Division
    矩形嵌套问题
    ACM最大子串和问题
    ACM装箱问题
    ACM田胫赛马
    ACM雷达安放问题
  • 原文地址:https://www.cnblogs.com/lonkiss/p/2801367.html
Copyright © 2020-2023  润新知