Genson是一个完全的Java和JSON转换的类库,提供了全面的数据绑定、流操作等。基于Apache 2.0协议发布。

- 易于使用、快速、高度可配置,轻量级的小jar包。
- 支持全面的数据绑定和流的高效读写。
- 支持多态类型(能够序列化一个未知类型)。
- 不需要默认的无参构造方法和传参不仅是null,鼓励不变性。它可以通过用工厂方法来代替构造函数。
- 全面支持Java泛型。
- 易于过滤和扩展文件属性,不需要通过注释和混合。
- Genson提供了JSR353的完整实现。
- 从Genson 0.95JAXB开始对注解和类型都提供支持。
- 在JAX-RS中对JSON实现自动支持。
- 用复杂的键构造序列化和反序列化map集合。
- 允许用户通过使用整洁,简单的方式尽可能多的扩展实现新的功能。
- 提供易于使用的API。
- 尝试成为快速、可扩展,甚至超过最高性能的库。
- 完全支持泛型。
- 支持没有源码的类。
- 提供高效的流式API。
POJO数据绑定
Genson库的主要切入点就是Genson类,它提供了从Java对象序列化成JSON对象和从JSON流中解序列化成Java对象。Genson实例是不可变、线程安全的,可以重用。一般来说,推荐的方法是每个配置类型都有一个单独的实例。
常用的使用方式就是用Genson去读JSON和一些POJO匹配。反之也可以,读POJO写JSON。
Java集合
你也可以用标准的Java集合像Map和List。如果你不告诉Genson你使用的类型,Genson将把JSON数组反序列化为Java中的List,JSON对象反序列化为Map,对象中的属性为long或double型。
反序列化通用类型
可以反序列化成通用的类型,例如POJO数组。
定制Genson
如果Genson提供的默认的配置不满足你的需求,你可以通过GensonBuilder来定制。例如,能够实现输出缩进,用他们运行时的类型序列化所有的对象,反序列化的类没有提供一个默认的无参构造方法,就可以通过下面的配置实现。
- 从Maven核心库(Maven Central)上下载
- 文档:owlike.github.io/genson/