Jackson Vs. Gson
在搜索了一些现有库的JSON之后,我最终得到了这两个:
- Jackson
- Google GSon
我对GSON有点偏爱,但网上有消息说GSon受到某些天体性能问题的困扰(截至2009年9月)。
我正在继续我的比较;同时,我正在寻找帮助下定决心。
回答:
关于实际数据绑定支持,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)
以上是 Jackson Vs. Gson 的全部内容, 来源链接: utcz.com/qa/428030.html