Java 杰克逊对格森
在搜索了一些现有的JSON库之后,我最终得到了以下两个:Java 杰克逊对格森,java,json,comparison,gson,jackson,Java,Json,Comparison,Gson,Jackson,在搜索了一些现有的JSON库之后,我最终得到了以下两个: 杰克逊 谷歌GSon 我有点偏袒GSON,但网上有消息称,GSON在某种程度上受到了天体性能的影响(截至2009年9月) 我继续我的比较;与此同时,我正在寻求帮助来下决心。我上周做了这项研究,结果得到了同样的两个库。当我使用Spring3(在默认的Json视图“”中采用Jackson)时,我自然也会这么做。两个库几乎相同。。。最后,它们只是映射到一个json文件!:) 不管怎么说,正如你所说的那样,杰克逊在表现上有一个+,这对我来说非
- 杰克逊
- 谷歌GSon
我继续我的比较;与此同时,我正在寻求帮助来下决心。我上周做了这项研究,结果得到了同样的两个库。当我使用Spring3(在默认的Json视图“”中采用Jackson)时,我自然也会这么做。两个库几乎相同。。。最后,它们只是映射到一个json文件!:)
不管怎么说,正如你所说的那样,杰克逊在表现上有一个+,这对我来说非常重要。正如您从中看到的,该项目也非常活跃,这也是一个非常好的迹象。
Jackson和Gson是关于实际数据绑定支持的最完整的Java JSON包;许多其他包只提供基本的映射/列表(或等效的树模型)绑定。 两者都完全支持泛型类型,并且对于许多常见用例具有足够的可配置性 由于我对Jackson比较熟悉,以下是一些方面,我认为Jackson比Gson获得了更全面的支持(如果我错过了Gson的功能,请道歉):
- 广泛的注释支持;包括完全继承和高级“混合”注释(在无法直接添加注释的情况下,将注释与类关联)
- 流式(增量)读写,用于超高性能(或内存有限)用例;可以与数据绑定(绑定子树)混合使用--编辑:Gson的最新版本还包括流媒体阅读器
- 树模型(类DOM访问);可以在各种模型之间转换(树java对象流)
- 可以使用任何构造函数(或静态工厂方法),而不仅仅是默认构造函数
- 字段和getter/setter访问(早期的gson版本仅使用字段,这可能已更改)
- 现成的JAX-RS支持
- 互操作性:还可以使用JAXB注释,支持/解决常见软件包(joda、ibatis、cglib)、JVM语言(groovy、clojure、scala)
- 强制输出静态(声明)类型处理的能力
- 支持反序列化多态类型(Jackson 1.5)--可以正确地序列化和反序列化列表之类的内容(带有其他类型信息)
- 对二进制内容的集成支持(从base64到JSON字符串)
通过使用JAXB注释类来创建或处理JSON消息,我可以共享同一个类来使用SpringMVC创建RESTfulWeb服务接口 添加到上面已经给出的其他答案中。如果案件不敏感对你来说很重要,那么就使用Jackson。Gson不支持键名不区分大小写,而jackson支持 这里有两个相关链接 (否)Gson中的区分大小写支持: Jackson中的案例敏感性支持
此外,谷歌GSon还不支持循环引用。Jackson处理过吗?循环引用支持。。。这应该是一个主要特性,但我不确定它是否支持它们,到目前为止,我从未遇到过循环引用(即使它们应该很常见,尤其是在模型中)。这里有另一个基准,可以突出显示杰克逊有多快,如果与GSon相比。序列化/反序列化速度看起来快了100倍Jackson目前不处理循环引用。如果这很重要,XStream会;不确定从1.6版开始是否有任何原生json包(可能是flex json?),Jackson确实支持循环引用。请参阅以供参考。Jackson有更多的安全问题,因为fortifyI希望看到一个支持这一点的度量。至少在:的测量结果仍然表明GSON与其他Java json包没有竞争力。我们有可用的微基准测试(检查到trunk/metrics目录下的GSON subversion存储库)表明,在简单的对象转换上,低级别的流API可以快10倍。还有其他一些基准(我需要鼓励原作者发表这些基准),这个低级API目前胜过包括Jackson在内的其他库。然而,创建全面且具有代表性的基准测试需要花费一些时间和精力。还有一个数据点:jvm序列化器()现在有“gson/manual”测试,它使用gson流api作为数据绑定的替代方案。一旦作者运行了“官方”号码,维基就可以更新了。但从本地运行来看,我认为它不支持超高速的说法(除上述内容外,还包括官方数据——流式Gson比数据绑定快,但不符合Jackson的性能水平)。。。对于后续的任何人来说,Gson 2.1最终确实带来了显著且可衡量的性能改进。此外,对于Android的使用,我看到的最新性能基准是:-2008年1月,2011年一个简短提示:任何选择GSon的人都应该确保使用2.1——它的性能最终明显优于早期版本。到目前为止,已有74票支持,这个问题显然有一些有价值的答案。好答案胜过“非建设性”问题。投票重开。杰克逊的文件现在变得非常复杂。实际上,这篇文章总结了许多在其他包中没有找到的杰克逊特性。我认为不需要注释是GSON的一个特性,而不是缺陷(你列出了至少3次以上)。杰克逊和GSON都不需要注释。但在我看来,将注释作为选项是一个很有价值的特性(特别是“混合注释”,这是al的附加处理选项)