1 package com.fasterxml.jackson.databind.ser.std;
2
3 import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
4
5 /**
6  * Simple general purpose serializer, useful for any
7  * type for which {@link Object#toString} returns the desired JSON
8  * value.
9  *<p>
10  * Since 2.10 extends {@link ToStringSerializerBase}
11  */

12 @JacksonStdImpl
13 @SuppressWarnings("serial")
14 public class ToStringSerializer
15     extends ToStringSerializerBase
16 {
17     /**
18      * Singleton instance to use.
19      */

20     public final static ToStringSerializer instance = new ToStringSerializer();
21
22     /**
23      *<p>
24      * Note: usually you should NOT create new instances, but instead use
25      * {@link #instance} which is stateless and fully thread-safe. However,
26      * there are cases where constructor is needed; for example,
27      * when using explicit serializer annotations like
28      * {@link com.fasterxml.jackson.databind.annotation.JsonSerialize#using}.
29      */

30     public ToStringSerializer() { super(Object.class); }
31
32     /**
33      * Sometimes it may actually make sense to retain actual handled type.
34      * 
35      * @since 2.5
36      */

37     public ToStringSerializer(Class<?> handledType) {
38         super(handledType);
39     }
40
41     @Override
42     public final String valueToString(Object value) {
43         return value.toString();
44     }
45 }
46