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
...
});
}
-
Install Jackson
-
Use Jackson to encode an arbitrary object as JSON
-
Use Jackson to decode JSON to a Java object. Client must specify the
Content-Type: application/jsonheader
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.