Class GenericJackson2JsonRedisSerializer

java.lang.Object
org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
All Implemented Interfaces:
RedisSerializer<Object>

public class GenericJackson2JsonRedisSerializer extends Object implements RedisSerializer<Object>
Generic Jackson 2-based RedisSerializer that maps objects to JSON using dynamic typing.
Since:
1.6
Author:
Christoph Strobl, Mark Paluch, Mao Shuai
  • Constructor Details

    • GenericJackson2JsonRedisSerializer

      public GenericJackson2JsonRedisSerializer()
      Creates GenericJackson2JsonRedisSerializer and configures ObjectMapper for default typing.
    • GenericJackson2JsonRedisSerializer

      public GenericJackson2JsonRedisSerializer(@Nullable String classPropertyTypeName)
      Creates GenericJackson2JsonRedisSerializer and configures ObjectMapper for default typing using the given name. In case of an empty or null String the default JsonTypeInfo.Id.CLASS will be used.
      Parameters:
      classPropertyTypeName - Name of the JSON property holding type information. Can be null.
      See Also:
      • ObjectMapper.activateDefaultTypingAsProperty(PolymorphicTypeValidator, DefaultTyping, String)
      • ObjectMapper.activateDefaultTyping(PolymorphicTypeValidator, DefaultTyping, As)
    • GenericJackson2JsonRedisSerializer

      public GenericJackson2JsonRedisSerializer(com.fasterxml.jackson.databind.ObjectMapper mapper)
      Setting a custom-configured ObjectMapper is one way to take further control of the JSON serialization process. For example, an extended SerializerFactory can be configured that provides custom serializers for specific types.
      Parameters:
      mapper - must not be null.
  • Method Details

    • registerNullValueSerializer

      public static void registerNullValueSerializer(com.fasterxml.jackson.databind.ObjectMapper objectMapper, @Nullable String classPropertyTypeName)
      Register GenericJackson2JsonRedisSerializer.NullValueSerializer in the given ObjectMapper with an optional classPropertyTypeName. This method should be called by code that customizes GenericJackson2JsonRedisSerializer by providing an external ObjectMapper.
      Parameters:
      objectMapper - the object mapper to customize.
      classPropertyTypeName - name of the type property. Defaults to @class if null/empty.
      Since:
      2.2
    • serialize

      public byte[] serialize(@Nullable Object source) throws SerializationException
      Description copied from interface: RedisSerializer
      Serialize the given object to binary data.
      Specified by:
      serialize in interface RedisSerializer<Object>
      Parameters:
      source - object to serialize. Can be null.
      Returns:
      the equivalent binary data. Can be null.
      Throws:
      SerializationException
    • deserialize

      public Object deserialize(@Nullable byte[] source) throws SerializationException
      Description copied from interface: RedisSerializer
      Deserialize an object from the given binary data.
      Specified by:
      deserialize in interface RedisSerializer<Object>
      Parameters:
      source - object binary representation. Can be null.
      Returns:
      the equivalent object instance. Can be null.
      Throws:
      SerializationException
    • deserialize

      @Nullable public <T> T deserialize(@Nullable byte[] source, Class<T> type) throws SerializationException
      Parameters:
      source - can be null.
      type - must not be null.
      Returns:
      null for empty source.
      Throws:
      SerializationException