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