为了账号安全,请及时绑定邮箱和手机立即绑定

杰克逊VS. Gson

/ 猿问

杰克逊VS. Gson

HUWWW 2019-08-14 17:24:18

杰克逊VS. Gson 

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

  • 杰克逊

  • 谷歌GSon

我对GSON有点偏爱,但网上的消息是GSon遇到了某种天体性能问题

我继续比较; 与此同时,我正在寻求帮助来决定我的想法。


查看完整描述

3 回答

?
慕函数4003404

我上周做了这项研究,最后得到了相同的2个库。当我使用Spring 3(在默认的Json视图中采用Jackson的' JacksonJsonView ')时,对我来说这样做更自然。2 lib几乎相同......最后它们只是映射到json文件!:)

无论如何,正如你所说,杰克逊在表现上有+,这对我来说非常重要。你可以从他们的网页上看到这个项目非常活跃,这也是一个非常好的迹象。


查看完整回答
反对 回复 6天前
?
哈士奇WWW

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(带有其他类型信息)

  • 对二进制内容的集成支持(base64到/来自JSON字符串)


查看完整回答
反对 回复 6天前
?
一只萌萌小番薯

Gson 1.6现在包含一个低级流API和一个新的解析器,它实际上比Jackson更快。


查看完整回答
反对 回复 6天前

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信