Class JacksonJsonEncoder

java.lang.Object
org.springframework.http.codec.JacksonCodecSupport<tools.jackson.databind.json.JsonMapper>
org.springframework.http.codec.AbstractJacksonEncoder<tools.jackson.databind.json.JsonMapper>
org.springframework.http.codec.json.JacksonJsonEncoder
All Implemented Interfaces:
Encoder<Object>, HttpMessageEncoder<Object>

public class JacksonJsonEncoder extends AbstractJacksonEncoder<tools.jackson.databind.json.JsonMapper>
Encode from an Object stream to a byte stream of JSON objects using Jackson 3.x. For non-streaming use cases, Flux elements are collected into a List before serialization for performance reason.

The default constructor loads JacksonModules found by MapperBuilder.findModules(ClassLoader).

Since:
7.0
Author:
Sebastien Deleuze
See Also:
  • Constructor Details

    • JacksonJsonEncoder

      public JacksonJsonEncoder()
      Construct a new instance with a JsonMapper customized with the JacksonModules found by MapperBuilder.findModules(ClassLoader) and ProblemDetailJacksonMixin.
    • JacksonJsonEncoder

      public JacksonJsonEncoder(tools.jackson.databind.json.JsonMapper mapper)
      Construct a new instance with the provided JsonMapper.
      See Also:
      • JsonMapper.builder()
      • MapperBuilder.findModules(ClassLoader)
    • JacksonJsonEncoder

      public JacksonJsonEncoder(tools.jackson.databind.json.JsonMapper mapper, MimeType... mimeTypes)
      Construct a new instance with the provided JsonMapper and MimeTypes.
      See Also:
      • JsonMapper.builder()
      • MapperBuilder.findModules(ClassLoader)
  • Method Details

    • getMediaTypesForProblemDetail

      protected List<MimeType> getMediaTypesForProblemDetail()
      Description copied from class: JacksonCodecSupport
      Return the supported media type(s) for ProblemDetail. By default, an empty list, unless overridden in subclasses.
      Overrides:
      getMediaTypesForProblemDetail in class JacksonCodecSupport<tools.jackson.databind.json.JsonMapper>
    • customizeWriter

      protected tools.jackson.databind.ObjectWriter customizeWriter(tools.jackson.databind.ObjectWriter writer, @Nullable MimeType mimeType, ResolvableType elementType, @Nullable Map<String,Object> hints)
      Description copied from class: AbstractJacksonEncoder
      Subclasses can use this method to customize the ObjectWriter used for writing values.
      Overrides:
      customizeWriter in class AbstractJacksonEncoder<tools.jackson.databind.json.JsonMapper>
      Parameters:
      writer - the writer instance to customize
      mimeType - the selected MIME type
      elementType - the type of element values to write
      hints - a map with serialization hints; the Reactor Context, when available, may be accessed under the key ContextView.class.getName()
      Returns:
      the customized ObjectWriter to use