Class JsonSerializer<T>

java.lang.Object
org.springframework.kafka.support.serializer.JsonSerializer<T>
Type Parameters:
T - class of the entity, representing messages
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.kafka.common.serialization.Serializer<T>

@Deprecated(forRemoval=true, since="4.0") public class JsonSerializer<T> extends Object implements org.apache.kafka.common.serialization.Serializer<T>
Deprecated, for removal: This API element is subject to removal in a future version.
since 4.0 in favor of JacksonJsonSerializer for Jackson 3.
Generic Serializer for sending Java objects to Kafka as JSON.

IMPORTANT: Configuration must be done completely with property setters or via configure(Map, boolean), not a mixture. If any setters have been called, configure(Map, boolean) will be a no-op.

Author:
Igor Stepanov, Artem Bilan, Gary Russell, Elliot Kennedy, Wang Zhiyang, Omer Celik
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Deprecated, for removal: This API element is subject to removal in a future version.
    Kafka config property for disabling adding type headers.
    protected boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected final com.fasterxml.jackson.databind.ObjectMapper
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    static final String
    Deprecated, for removal: This API element is subject to removal in a future version.
    Kafka config property to add type mappings to the type mapper: 'foo:com.Foo,bar:com.Bar'.
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    JsonSerializer(com.fasterxml.jackson.core.type.TypeReference<? super T> targetType)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    JsonSerializer(com.fasterxml.jackson.core.type.TypeReference<? super T> targetType, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    JsonSerializer(@Nullable com.fasterxml.jackson.databind.JavaType targetType, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    JsonSerializer(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    void
    configure(Map<String,?> configs, boolean isKey)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    copyWithType(com.fasterxml.jackson.core.type.TypeReference<? super X> newTargetType)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Copies this serializer with same configuration, except new target type reference is used.
    copyWithType(com.fasterxml.jackson.databind.JavaType newTargetType)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Copies this serializer with same configuration, except new target java type is used.
    copyWithType(Class<? super X> newTargetType)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Copies this serializer with same configuration, except new target type reference is used.
    protected static Map<String,Class<?>>
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    Deprecated, for removal: This API element is subject to removal in a future version.
    Designate this serializer for serializing keys (default is values); only applies if the default type mapper is used.
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    Deprecated, for removal: This API element is subject to removal in a future version.
    Do not include type info headers.
    byte[]
    serialize(String topic, @Nullable T data)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    byte[]
    serialize(String topic, org.apache.kafka.common.header.Headers headers, @Nullable T data)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    void
    setAddTypeInfo(boolean addTypeInfo)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Set to false to disable adding type info headers.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Set a customized type mapper.
    void
    setUseTypeMapperForKey(boolean isKey)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Configure the default Jackson2JavaTypeMapper to use key type headers.
    Deprecated, for removal: This API element is subject to removal in a future version.
    Use the supplied Jackson2JavaTypeMapper.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • ADD_TYPE_INFO_HEADERS

      public static final String ADD_TYPE_INFO_HEADERS
      Deprecated, for removal: This API element is subject to removal in a future version.
      Kafka config property for disabling adding type headers.
      See Also:
    • TYPE_MAPPINGS

      public static final String TYPE_MAPPINGS
      Deprecated, for removal: This API element is subject to removal in a future version.
      Kafka config property to add type mappings to the type mapper: 'foo:com.Foo,bar:com.Bar'.
      See Also:
    • objectMapper

      protected final com.fasterxml.jackson.databind.ObjectMapper objectMapper
      Deprecated, for removal: This API element is subject to removal in a future version.
    • addTypeInfo

      protected boolean addTypeInfo
      Deprecated, for removal: This API element is subject to removal in a future version.
    • typeMapper

      protected Jackson2JavaTypeMapper typeMapper
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • JsonSerializer

      public JsonSerializer()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • JsonSerializer

      public JsonSerializer(com.fasterxml.jackson.core.type.TypeReference<? super T> targetType)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • JsonSerializer

      public JsonSerializer(com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • JsonSerializer

      public JsonSerializer(com.fasterxml.jackson.core.type.TypeReference<? super T> targetType, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • JsonSerializer

      public JsonSerializer(@Nullable com.fasterxml.jackson.databind.JavaType targetType, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • isAddTypeInfo

      public boolean isAddTypeInfo()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setAddTypeInfo

      public void setAddTypeInfo(boolean addTypeInfo)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set to false to disable adding type info headers.
      Parameters:
      addTypeInfo - true to add headers.
      Since:
      2.1
    • getTypeMapper

      public Jackson2JavaTypeMapper getTypeMapper()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setTypeMapper

      public void setTypeMapper(Jackson2JavaTypeMapper typeMapper)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set a customized type mapper.
      Parameters:
      typeMapper - the type mapper.
      Since:
      2.1
    • setUseTypeMapperForKey

      public void setUseTypeMapperForKey(boolean isKey)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Configure the default Jackson2JavaTypeMapper to use key type headers.
      Parameters:
      isKey - Use key type headers if true
      Since:
      2.1.3
    • configure

      public void configure(Map<String,?> configs, boolean isKey)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      configure in interface org.apache.kafka.common.serialization.Serializer<T>
    • createMappings

      protected static Map<String,Class<?>> createMappings(String mappings)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • serialize

      public byte[] serialize(String topic, org.apache.kafka.common.header.Headers headers, @Nullable T data)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      serialize in interface org.apache.kafka.common.serialization.Serializer<T>
    • serialize

      public byte[] serialize(String topic, @Nullable T data)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      serialize in interface org.apache.kafka.common.serialization.Serializer<T>
    • close

      public void close()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface org.apache.kafka.common.serialization.Serializer<T>
    • copyWithType

      public <X> JsonSerializer<X> copyWithType(Class<? super X> newTargetType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Copies this serializer with same configuration, except new target type reference is used.
      Type Parameters:
      X - new serialization source type
      Parameters:
      newTargetType - type reference forced for serialization, not null
      Returns:
      new instance of serializer with type changes
      Since:
      2.6
    • copyWithType

      public <X> JsonSerializer<X> copyWithType(com.fasterxml.jackson.core.type.TypeReference<? super X> newTargetType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Copies this serializer with same configuration, except new target type reference is used.
      Type Parameters:
      X - new serialization source type
      Parameters:
      newTargetType - type reference forced for serialization, not null
      Returns:
      new instance of serializer with type changes
      Since:
      2.6
    • copyWithType

      public <X> JsonSerializer<X> copyWithType(com.fasterxml.jackson.databind.JavaType newTargetType)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Copies this serializer with same configuration, except new target java type is used.
      Type Parameters:
      X - new serialization source type
      Parameters:
      newTargetType - java type forced for serialization, not null
      Returns:
      new instance of serializer with type changes
      Since:
      2.6
    • forKeys

      public JsonSerializer<T> forKeys()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Designate this serializer for serializing keys (default is values); only applies if the default type mapper is used.
      Returns:
      the serializer.
      Since:
      2.3
      See Also:
    • noTypeInfo

      public JsonSerializer<T> noTypeInfo()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Do not include type info headers.
      Returns:
      the serializer.
      Since:
      2.3
      See Also:
    • typeMapper

      public JsonSerializer<T> typeMapper(Jackson2JavaTypeMapper mapper)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use the supplied Jackson2JavaTypeMapper.
      Parameters:
      mapper - the mapper.
      Returns:
      the serializer.
      Since:
      2.3
      See Also: