一尘不染

Jackson Vs. Gson

java

在搜索了一些现有库的JSON之后,我最终得到了这两个:

  • Jackson
  • Google GSon

我对GSON有点偏爱,但网上有消息说GSon受到某些天体性能问题的困扰(截至2009年9月)。

我正在继续我的比较;同时,我正在寻找帮助下定决心。


阅读 757

收藏
2020-03-12

共1个答案

一尘不染

关于实际数据绑定支持,Jackson和Gson是最完整的Java JSON软件包。许多其他软件包仅提供原始Map / List(或等效树模型)绑定。两者都完全支持通用类型,并且对于许多常见用例都具有足够的可配置性。

由于我对杰克逊比较熟悉,因此我认为杰克逊在某些方面比Gson更加全面(如果我错过了Gson功能,我们深表歉意):

  • 广泛的注释支持;包括完全继承和高级“混合”注释(对于无法直接添加它们的情况,将注释与类相关联)
  • 流(增量)读取,写入,以实现超高性能(或内存受限)用例;可以与数据绑定(绑定子树)混合使用- 编辑:Gson的最新版本还包括流阅读器
  • 树模型(类似于DOM的访问);可以在各种模型之间转换(树<-> Java对象<->流)
  • 可以使用任何构造函数(或静态工厂方法),而不仅仅是默认构造函数
  • 字段和getter / setter访问(早期的gson版本仅使用字段,可能已更改)
  • 开箱即用的JAX-RS支持
  • 互操作性:还可以使用JAXB批注,对常见软件包(joda,ibatis,cglib),JVM语言(groovy,clojure,scala)具有支持/解决方法
  • 能够强制对输出进行静态(声明的)类型处理
  • 支持反序列化多态类型(Jackson 1.5)-可以正确地序列化和反序列化诸如List之类的东西(带有其他类型信息)
  • 集成支持二进制内容(与JSON字符串之间的base64)
2020-03-12