Jackson

JSON support using Jackson 3 library.

Usage

1) Add the dependency:

Maven
Gradle
<dependency>
  <groupId>io.jooby</groupId>
  <artifactId>jooby-jackson3</artifactId>
  <version>4.0.16</version>
</dependency>

2) Install and encode/decode JSON

Java
Kotlin
import io.jooby.jackson3.Jackson3Module;

{
  install(new Jackson3Module()); // 1

  get("/", ctx -> {
    MyObject myObject = ...;
    return myObject; // 2
  });

  post("/", ctx -> {
    MyObject myObject = ctx.body(MyObject.class); // 3
    ...
  });
}
  1. Install Jackson

  2. Use Jackson to encode an arbitrary object as JSON

  3. Use Jackson to decode JSON to a Java object. Client must specify the Content-Type: application/json header

Working with ObjectMapper

Access to default object mapper is available via require call:

Default object mapper
Java
Kotlin
import io.jooby.jackson3.Jackson3Module;

{
  install(new Jackson3Module());

  ObjectMapper mapper = require(ObjectMapper.class);
  ...
}

You can provide your own ObjectMapper:

Custom ObjectMapper
Java
Kotlin
import io.jooby.jackson3.Jackson3Module;

{
  ObjectMapper mapper = new ObjectMapper();

  install(new Jackson3Module(mapper));
}

This allows to configure Jackson3Module for doing xml processing:

XmlMapper
Java
Kotlin
import io.jooby.jackson3.Jackson3Module;

{
  install(new Jackson3Module(new XmlMapper()));
}

If you want json and xml processing then install twice:

XmlMapper+JsonMapper
Java
Kotlin
import io.jooby.jackson3.Jackson3Module;

{
  install(new Jackson3Module(new JsonMapper()));
  install(new Jackson3Module(new XmlMapper()));
}

Provisioning Jackson Modules

Jackson module can be provided by a dependency injection framework.

Provisioning Modules
Java
Kotlin
import io.jooby.jackson3.Jackson3Module;

{
  install(new Jackson3Module().module(MyModule.class);
}

At startup time Jooby asks dependency injection framework to provide a MyModule instance.