Class JacksonModule

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

public class JacksonModule extends Object implements io.jooby.Extension, io.jooby.MessageDecoder, io.jooby.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
  • Field Summary

    Fields inherited from interface io.jooby.MessageDecoder

    UNSUPPORTED_MEDIA_TYPE

    Fields inherited from interface io.jooby.MessageEncoder

    TO_STRING
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a Jackson module using the default object mapper from create(Module...).
    JacksonModule(com.fasterxml.jackson.databind.ObjectMapper mapper)
    Creates a Jackson module.
    JacksonModule(com.fasterxml.jackson.databind.ObjectMapper mapper, io.jooby.MediaType contentType)
    Creates a Jackson module.
  • Method Summary

    Modifier and Type
    Method
    Description
    static com.fasterxml.jackson.databind.ObjectMapper
    create(com.fasterxml.jackson.databind.Module... modules)
    Default object mapper.
    decode(io.jooby.Context ctx, Type type)
     
    byte[]
    encode(io.jooby.Context ctx, Object value)
     
    void
    install(io.jooby.Jooby application)
     
    module(Class<? extends com.fasterxml.jackson.databind.Module> module)
    Add a Jackson module to the object mapper.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.jooby.Extension

    lateinit
  • Constructor Details

    • JacksonModule

      public JacksonModule(@NonNull com.fasterxml.jackson.databind.ObjectMapper mapper, @NonNull io.jooby.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 io.jooby.Jooby application)
      Specified by:
      install in interface io.jooby.Extension
    • encode

      public byte[] encode(@NonNull io.jooby.Context ctx, @NonNull Object value) throws Exception
      Specified by:
      encode in interface io.jooby.MessageEncoder
      Throws:
      Exception
    • decode

      public Object decode(io.jooby.Context ctx, Type type) throws Exception
      Specified by:
      decode in interface io.jooby.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.