JSON support using Avaje-JsonB library.
1) Add the dependency:
.
2) Install and encode/decode JSON
Java
import io.jooby.avaje.jsonb.AvajeJsonbModule;
{
install(new AvajeJsonbModule()); (1)
get("/", ctx -> {
MyObject myObject = ...;
return myObject; (2)
});
post("/", ctx -> {
MyObject myObject = ctx.body(MyObject.class); (3)
...
});
}Kotlin
import io.jooby.avaje.jsonb.AvajeJsonbModule
{
install(AvajeJsonbModule()) (1)
get("/") {
val myObject = ...;
myObject (2)
}
post("/") {
val myObject = ctx.body<MyObject>() (3)
...
}
}-
Install Avaje-JsonB
-
Use Avaje-JsonB to encode arbitrary object as JSON
-
Use Avaje-JsonB to decode JSON to Java object. Client must specify the
Content-Type: application/jsonheader
Access to default Jsonb is available via require call:
Default Jsonb
import io.jooby.avaje.jsonb.AvajeJsonbModule;
import io.avaje.jsonb.Jsonb;
{
install(new AvajeJsonbModule());
Jsonb jsonb = require(Jsonb.class);
...
}Kotlin
import io.jooby.avaje.jsonb.AvajeJsonbModule
import io.avaje.jsonb.Jsonb
{
install(AvajeJsonbModule())
val jsonb = require<Jsonb>()
}You can provide your own Jsonb:
Custom Jsonb
import io.jooby.avaje.jsonb.AvajeJsonbModule;
import io.avaje.jsonb.Jsonb;
{
var jsonb = Jsonb.builder().build();
install(new AvajeJsonbModule(jsonb));
}Kotlin
import io.jooby.avaje.jsonb.AvajeJsonbModule
import io.avaje.jsonb.Jsonb
{
var jsonb = Jsonb.builder().build()
install(AvajeJsonbModule(jsonb))
}