Class JacksonModule

java.lang.Object
io.jooby.jackson.JacksonModule
All Implemented Interfaces:
Extension, MessageDecoder, MessageEncoder

public class JacksonModule extends Object implements Extension, MessageDecoder, MessageEncoder
JSON module using Jackson: https://jooby.io/modules/jackson.

Usage:


 {

   install(new JacksonModule());

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

   post("/", ctx -> {
     // read json
     MyObject myObject = ctx.body(MyObject.class);
     // send json
     return myObject;
   });
 }
 
For body decoding the client must specify the Content-Type header set to application/json.

You can retrieve the ObjectMapper via require call:


 {

   ObjectMapper mapper = require(ObjectMapper.class);

 }
 
Complete documentation is available at: https://jooby.io/modules/jackson.
Since:
2.0.0
Author:
edgar
  • Constructor Details

    • JacksonModule

      public JacksonModule(@NonNull com.fasterxml.jackson.databind.ObjectMapper mapper, @NonNull MediaType contentType)
      Creates a Jackson module.
      Parameters:
      mapper - Object mapper to use.
      contentType - Content type.
    • JacksonModule

      public JacksonModule(@NonNull com.fasterxml.jackson.databind.ObjectMapper mapper)
      Creates a Jackson module.
      Parameters:
      mapper - Object mapper to use.
    • JacksonModule

      public JacksonModule()
      Creates a Jackson module using the default object mapper from create(Module...).
  • Method Details

    • module

      public JacksonModule module(Class<? extends com.fasterxml.jackson.databind.Module> module)
      Add a Jackson module to the object mapper. This method require a dependency injection framework which is responsible for provisioning a module instance.
      Parameters:
      module - Module type.
      Returns:
      This module.
    • install

      public void install(@NonNull Jooby application)
      Specified by:
      install in interface Extension
    • encode

      public Output encode(@NonNull Context ctx, @NonNull Object value) throws Exception
      Specified by:
      encode in interface MessageEncoder
      Throws:
      Exception
    • decode

      public Object decode(Context ctx, Type type) throws Exception
      Specified by:
      decode in interface MessageDecoder
      Throws:
      Exception
    • create

      @NonNull public static com.fasterxml.jackson.databind.ObjectMapper create(com.fasterxml.jackson.databind.Module... modules)
      Default object mapper. Install Jdk8Module, JavaTimeModule, ParameterNamesModule.
      Parameters:
      modules - Extra/additional modules to install.
      Returns:
      Object mapper instance.