Genson:Java开源JSON格式解析工具

1,329 阅读2分钟
原文链接: owlike.github.io

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来定制。例如,能够实现输出缩进,用他们运行时的类型序列化所有的对象,反序列化的类没有提供一个默认的无参构造方法,就可以通过下面的配置实现。

官方网站:owlike.github.io/genson/
开源地址:github.com/owlike/gens…