在搜索了一些现有库的JSON之后,我最终得到了这两个:
- 杰克逊
- 谷歌GSon
我对GSON有点偏爱,但网上有消息说GSon受到某些天体性能问题的困扰(截至2009年9月)。
我正在继续我的比较;同时,我正在寻找帮助下定决心。
在搜索了一些现有库的JSON之后,我最终得到了这两个:
我对GSON有点偏爱,但网上有消息说GSon受到某些天体性能问题的困扰(截至2009年9月)。
我正在继续我的比较;同时,我正在寻找帮助下定决心。
Answers:
我上周做了这项研究,最后得到了相同的2个库。当我使用Spring 3(在默认的Json视图“ JacksonJsonView ” 中采用Jackson )时,对我来说更自然。2 lib几乎相同...最后,它们只是映射到json文件!:)
无论如何,正如您所说,杰克逊的表现为+,这对我来说非常重要。从他们的网页上可以看到,该项目也非常活跃,这也是一个很好的信号。
Jackson和Gson是有关实际数据绑定支持的最完整的Java JSON软件包。许多其他软件包仅提供原始Map / List(或等效树模型)绑定。两者都完全支持通用类型,并且对于许多常见用例都具有足够的可配置性。
由于我对杰克逊比较熟悉,因此我认为杰克逊在某些方面比Gson更加全面(如果我错过了Gson功能,我们深表歉意):
Gson 1.6现在包括一个低级流API和一个新的解析器,它实际上比Jackson更快。
添加到上面已经给出的其他答案。如果不区分大小写对您来说很重要,请使用Jackson。Gson不支持键名区分大小写,而jackson支持。
这是两个相关的链接
(否)Gson支持区分大小写: 区分大小写 GSON:如何从Json获得不区分大小写的元素?
Jackson中的区分大小写支持 https://gist.github.com/electrum/1260489
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
,Jackson 2.5中增加了对不区分大小写的属性的正式支持。因此,无需为此添加自定义代码。
似乎GSon不支持JAXB。通过使用带有JAXB注释的类来创建或处理JSON消息,我可以共享同一类,以使用Spring MVC创建Restful Web Service接口。