也有另一种称为Genson http://code.google.com/p/genson/库。
其实Genson速度更快,功能比Gson更多,并且性能接近杰克逊(但其重量更轻),请参阅http://code.google.com/p/genson/wiki/Metrics。它使用àapi api而不是dom模型,它具有更好的可伸缩性,并且在web应用程序中可以在输入到达时处理转换。
Genson非常适合所有类型的用例,从简单的转换到完全定制所有过程。你可以配置很多东西(使用字段和/或方法,使用带有参数的构造函数,没有任何注释,通过可见性过滤属性等等)。你应该看看维基。
它的最新版本(0.91)可以在maven中央仓库中找到。
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>0.91</version>
</dependency>
声明:我是图书馆的作者,但我试图客观(尤其是在基准测试中)。
编辑 关于Gson和Jackson的几句话。我已经使用了超过2年的杰克逊和一点Gson。首先要注意的是,杰克逊是最快的json/java库(Gesnon试图打败它,但它很难)。杰克逊还有很多功能和配置可能性(大多数基于注释)。我有杰克逊的标准和高级用法,直到我需要杰克逊没有提供的功能时,它才是好的。我发现图书馆真的很难扩展(对于我的用例来说,如果不重写大部分内容,这是不可能的)。
然后我试了Gson。首先要注意的是,Gson不使用getter/setter,而只使用字段!它的表现并不好(特别是与杰克逊或吉森相比)。 随着最新版本的改进,它们也提供了流式API,但其速度仍然不够快。开始时,它的主要优势是对Java泛型的良好支持,但Jackson和Genson也提供了它。还请注意,Gson的开箱即用功能比Genson或Jackson少。 我也尝试实现我在Gson中需要的功能,但是我发现Bean数据绑定部分不可扩展(在没有扩展点的单个类中的所有内容附近),所以我将不得不重写它。这是毫无疑问的,那就是我最终创造了Genson。
如果你不想使用Genson,我真的推荐你Jackson在Gson上。
一个POJO的序列化是类似的地图。见http://stackoverflow.com/questions/11851603/how-to-convert-hashmap-to-json-file/11851693#11851693 –