加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中json工具对比分析

发布时间:2020-12-14 06:25:28 所属栏目:Java 来源:网络整理
导读:p align="center"a class="replace_word" title="Java EE知识库" href="http://lib.csdn.net/base/javaee" target="_blank"Java中几个json工具分析 p align="left" 1,? 环境 p align="left"JDK1.6+IDE(IntelliJ IDEA)+windowsXP+GBK编码 p align="left" 2

<p align="center"><a class="replace_word" title="Java EE知识库" href="http://lib.csdn.net/base/javaee" target="_blank">Java中几个json工具分析


<p align="left">1,?环境


<p align="left">JDK1.6+IDE(IntelliJ IDEA)+windowsXP+GBK编码


<p align="left">2,分析对象


<p align="left">jackson1.8.2?<a href="http://jackson.codehaus.org/"&gt;http://jackson.codehaus.org/


<p align="left">gson1.7.1?<a href="http://code.google.com/p/google-gson/"&gt;http://code.google.com/p/google-gson/


<p align="left">jsob_lib2.4?<a href="http://json-lib.sourceforge.net/"&gt;http://json-lib.sourceforge<a class="replace_word" title=".NET知识库" href="http://lib.csdn.net/base/dotnet" target="_blank">.NET/?


<p align="left">3,使用实例


<p align="left">?????????用两个bean进行<a class="replace_word" title="软件测试知识库" href="http://lib.csdn.net/base/softwaretest" target="_blank">测试,两个bean都嵌套有数组和对象,唯一的区别是一个属性全部小写开头,另一个属性全部大写开头,bean里面都有setter和getter。


<p align="left">JBean代码如下:


<p align="left">?


<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;view plain?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;copy

?
  1. ??
  2. ??
  3. ??
  4. ??
  5. ??
  6. ??
  7. ??
  8. ??
  9. ??
  10. ??
  11. ??
  12. ??
  13. ??
  14. ??
  15. ??
  16. ??
  17. ??
  18. ??
  19. ??
  20. ??
  21. ??
  22. ??
  23. ??
  24. ??
  25. ??
  26. ??
  27. ??
  28. ??

<p align="left">JBean2代码如下:


<p align="left">把JBean的属性头字母全部改成小写,然后用IDE自动生成setter和getter。


<p align="left">?


<p align="left">Jackson使用实例


<p align="left">(Json to bean)


<p align="left">?


<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;view plain?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;copy

?
  1. ??

<p align="left">?


<p align="left">(Bean to json)


<p align="left">?


<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;view plain?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;copy

?
  1. ??
  2. ??
  3. ??
  4. ??
  5. ??
  6. ??

<p align="left">?


<p align="left">嵌套使用List和Object的情况下,jackson依然能准确转换,唯一不足之处就是无论bean属性的开头字符是大写还是小写,被jackson转换成字符串后首字母都是小写的了。


<p align="left">Gson使用实例


<p align="left">(json to bean)


<p align="left">?


<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;view plain?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;copy

?
  1. ??

<p align="left">?


<p align="left">(bean to json)


<p align="left">?


<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;view plain?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;copy

?
  1. ??
  2. ??

<p align="left">?


<p align="left">使用很简单,bean小写字母开头时,由json转bean才能成功。


<p align="left">JSON_LIB使用实例


<p align="left">(json to bean)


<p align="left">?


<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;view plain?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;copy

?
  1. ??
  2. ??
  3. ??

<p align="left">(bean to json)


<p align="left">?


<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
[java]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;view plain?<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/weinianjie1/article/details/6561788#"&gt;copy

?
  1. ??
  2. ??
  3. ??

<p align="left">?


<p align="left">对嵌套List和Object支持不够好,我调试嵌套的时候没有成功,时间关系也没来得及细细找原因,不过之前有使用过,这个工具最大的好处是,无论json字符串嵌套的是数组还是对象,使用JSONObject.fromObject或者JSONArray.fromObject转换后一律分别转换成对象和数组了,对操作是比较方便的,但是却改变了json原来的<a class="replace_word" title="算法与数据结构知识库" href="http://lib.csdn.net/base/datastructure" target="_blank">数据结构。


<p align="left">4,性能对比


<p align="left">之前没有做过性能测试这样的工作,于是网上搜索了达人的研究成果,地址<a href="http://wangym.iteye.com/blog/738933"&gt;http://wangym.iteye.com/blog/738933


<p align="left">?


<p align="left">简单的说就是性能方面jackson >??gson??>??json-lib。其中gson比json-lib性能略高一点,jacks性能高出json-lib有10倍。


<p align="left">5,总结


<p align="left">?


<p align="left">还有一点忘记补充了,jackson和gson都可以独立使用,而json-lib是依赖其他五个包的,json-lib官网原话


<p align="left">Json-lib requires (at least) the following dependencies in your classpath:

<p align="left">jakarta commons-lang 2.5

<p align="left">jakarta commons-beanutils 1.8.0

<p align="left">jakarta commons-collections 3.2.1

<p align="left">jakarta commons-logging 1.1.1

<p align="left">ezmorph 1.0.6


<p align="left">这些类库据说在struts2里面都有。无语json-lib了,性能低不说,还依赖那么多类库,转换也不是很方便。


<p align="left">强力推荐使用jackson和gson,我测试用的源代码<a href="http://download.csdn.net/source/3386315"&gt;http://download.csdn.net/source/3386315,时间太急了简单总结下,希望下次遇到json的时候能反映迅速点,有什么写错了希望纠正,谢谢!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读