Jackson
JSON support using Jackson 2 library.
Usage
1) Add the dependency:
Maven
Gradle
<dependency>
<groupId>io.jooby</groupId>
<artifactId>jooby-jackson</artifactId>
<version>4.0.16</version>
</dependency>
2) Install and encode/decode JSON
Java
Kotlin
import io.jooby.jackson.JacksonModule;
{
install(new JacksonModule()); // 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.jackson.JacksonModule;
{
install(new JacksonModule());
ObjectMapper mapper = require(ObjectMapper.class);
...
}
You can provide your own ObjectMapper:
Custom ObjectMapper
Java
Kotlin
import io.jooby.jackson.JacksonModule;
{
ObjectMapper mapper = new ObjectMapper();
install(new JacksonModule(mapper));
}
This allows to configure JacksonModule for doing xml processing:
XmlMapper
Java
Kotlin
import io.jooby.jackson.JacksonModule;
{
install(new JacksonModule(new XmlMapper()));
}
If you want json and xml processing then install twice:
XmlMapper
Java
Kotlin
import io.jooby.jackson.JacksonModule;
{
install(new JacksonModule(new ObjectMapper()));
install(new JacksonModule(new XmlMapper()));
}
Provisioning Jackson Modules
Jackson module can be provided by a dependency injection framework.
Provisioning Modules
Java
Kotlin
import io.jooby.jackson.JacksonModule;
{
install(new JacksonModule().module(MyModule.class);
}
At startup time Jooby ask dependency injection framework to provide a MyModule instance.