org.springframework.data.redis.serializer
Class JacksonJsonRedisSerializer<T>

java.lang.Object
  extended by org.springframework.data.redis.serializer.JacksonJsonRedisSerializer<T>
All Implemented Interfaces:
RedisSerializer<T>

public class JacksonJsonRedisSerializer<T>
extends Object
implements RedisSerializer<T>

RedisSerializer that can read and write JSON using Jackson's ObjectMapper.

This converter can be used to bind to typed beans, or untyped HashMap instances. Note:Null objects are serialized as empty arrays and vice versa.


Field Summary
static Charset DEFAULT_CHARSET
           
 
Constructor Summary
JacksonJsonRedisSerializer(Class<T> type)
           
 
Method Summary
 T deserialize(byte[] bytes)
          Deserialize an object from the given binary data.
protected  JavaType getJavaType(Class<?> clazz)
          Returns the Jackson JavaType for the specific class.
 byte[] serialize(Object t)
          Serialize the given object to binary data.
 void setObjectMapper(ObjectMapper objectMapper)
          Sets the ObjectMapper for this view.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CHARSET

public static final Charset DEFAULT_CHARSET
Constructor Detail

JacksonJsonRedisSerializer

public JacksonJsonRedisSerializer(Class<T> type)
Method Detail

deserialize

public T deserialize(byte[] bytes)
              throws SerializationException
Description copied from interface: RedisSerializer
Deserialize an object from the given binary data.

Specified by:
deserialize in interface RedisSerializer<T>
Parameters:
bytes - object binary representation
Returns:
the equivalent object instance
Throws:
SerializationException

serialize

public byte[] serialize(Object t)
                 throws SerializationException
Description copied from interface: RedisSerializer
Serialize the given object to binary data.

Specified by:
serialize in interface RedisSerializer<T>
Parameters:
t - object to serialize
Returns:
the equivalent binary data
Throws:
SerializationException

setObjectMapper

public void setObjectMapper(ObjectMapper objectMapper)
Sets the ObjectMapper for this view. If not set, a default ObjectMapper is used.

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. The other option for refining the serialization process is to use Jackson's provided annotations on the types to be serialized, in which case a custom-configured ObjectMapper is unnecessary.


getJavaType

protected JavaType getJavaType(Class<?> clazz)
Returns the Jackson JavaType for the specific class.

Default implementation returns TypeFactory.type(java.lang.reflect.Type), but this can be overridden in subclasses, to allow for custom generic collection handling. For instance:

 protected JavaType getJavaType(Class<?> clazz) {
   if (List.class.isAssignableFrom(clazz)) {
     return TypeFactory.collectionType(ArrayList.class, MyBean.class);
   } else {
     return super.getJavaType(clazz);
   }
 }
 

Parameters:
clazz - the class to return the java type for
Returns:
the java type