Genson

Java and Scala JSON conversion library.

Powerful and easy to use

Genson API is designed to be easy to use, it handles for you all the databinding, streaming and much more.

Highly modular architecture and configurable via the GensonBuilder.

new Genson().deserialize("{}", AwesomeBean.class);

Full support of generic types, polymorphic types and immutable objects that don't provide a default constructor.

new GensonBuilder()
  .useDateFormat(new SimpleDateFormat("yyyy-MM-dd"))
  .useIndentation(true)
  .useConstructorWithArguments(true)
.create();

Integrated with Java ecosystem

Just drop the jar in your classpath to enable Json support in a JAX-RS Application.
Provides extensions for Scala, Joda-Time, Guava and more to come.
Use Genson as your JSR 353 implementation and take advantage of Genson speed or just use JSR 353 DOM structures with Genson.
Use JAXB annotations with Genson.
new Genson().serialize(
  Json.createArrayBuilder()
    .add(1)
    .add(2)
  .build()
);
public class Bean {
  @XmlJavaTypeAdapter(BeanAdapter.class)
  private ComplexType complexObject;
  @XmlTransient
  private String password;
}

Performant and scalable

High serialization and deserialization throughput
Small memory footprint.
Automatically read & write data in streaming with the Streaming API.
Consistent speed/memory usage independent of documents size.
See Benchmarks & Metrics for more details.

Get it!

Genson is packaged as a all in one solution of ~300Kb, everything needed is inside the jar.
No more ClassNotFound exceptions for non maven users because you forgot to download a dependency!
No more headaches handling dependency versions for maven users!
<dependency>
  <groupId>com.owlike</groupId>
  <artifactId>genson</artifactId>
  <version>1.6</version>
</dependency>