ResolvableSerializer
, SchemaAware
MapSerializer
public class MapSerializer extends ContainerSerializerBase<java.util.Map<?,?>> implements ResolvableSerializer
Note: about the only configurable setting currently is ability to filter out entries with specified names.
JsonSerializer.None
Modifier and Type | Field | Description |
---|---|---|
protected PropertySerializerMap |
_dynamicValueSerializers |
If value type can not be statically determined, mapping from
runtime value types to serializers are stored in this object.
|
protected java.util.HashSet<java.lang.String> |
_ignoredEntries |
Set of entries to omit during serialization, if any
|
protected JsonSerializer<java.lang.Object> |
_keySerializer |
Key serializer to use, if it can be statically determined
|
protected JavaType |
_keyType |
Declared type of keys
|
protected BeanProperty |
_property |
Map-valued property being serialized with this instance
|
protected JsonSerializer<java.lang.Object> |
_valueSerializer |
Value serializer to use, if it can be statically determined
|
protected JavaType |
_valueType |
Declared type of contained values
|
protected boolean |
_valueTypeIsStatic |
Whether static types should be used for serialization of values
or not (if not, dynamic runtime type is used)
|
protected TypeSerializer |
_valueTypeSerializer |
Type identifier serializer used for values, if any.
|
protected static JavaType |
UNSPECIFIED_TYPE |
_handledType
Modifier | Constructor | Description |
---|---|---|
protected |
MapSerializer() |
|
protected |
MapSerializer(java.util.HashSet<java.lang.String> ignoredEntries,
JavaType keyType,
JavaType valueType,
boolean valueTypeIsStatic,
TypeSerializer vts,
JsonSerializer<java.lang.Object> keySerializer,
JsonSerializer<java.lang.Object> valueSerializer,
BeanProperty property) |
Modifier and Type | Method | Description |
---|---|---|
protected JsonSerializer<java.lang.Object> |
_findAndAddDynamic(PropertySerializerMap map,
java.lang.Class<?> type,
SerializerProvider provider) |
|
protected JsonSerializer<java.lang.Object> |
_findAndAddDynamic(PropertySerializerMap map,
JavaType type,
SerializerProvider provider) |
|
ContainerSerializerBase<?> |
_withValueTypeSerializer(TypeSerializer vts) |
|
static MapSerializer |
construct(java.lang.String[] ignoredList,
JavaType mapType,
boolean staticValueType,
TypeSerializer vts,
BeanProperty property) |
Deprecated.
As of 1.8; use the variant with more arguments
|
static MapSerializer |
construct(java.lang.String[] ignoredList,
JavaType mapType,
boolean staticValueType,
TypeSerializer vts,
BeanProperty property,
JsonSerializer<java.lang.Object> keySerializer,
JsonSerializer<java.lang.Object> valueSerializer) |
|
JsonNode |
getSchema(SerializerProvider provider,
java.lang.reflect.Type typeHint) |
Note: since Jackson 1.9, default implementation claims type is "string"
|
void |
resolve(SerializerProvider provider) |
Need to get callback to resolve value serializer, if static typing
is used (either being forced, or because value type is final)
|
void |
serialize(java.util.Map<?,?> value,
JsonGenerator jgen,
SerializerProvider provider) |
Method that can be called to ask implementation to serialize
values of type this serializer handles.
|
void |
serializeFields(java.util.Map<?,?> value,
JsonGenerator jgen,
SerializerProvider provider) |
Method called to serialize fields, when the value type is not statically known.
|
protected void |
serializeFieldsUsing(java.util.Map<?,?> value,
JsonGenerator jgen,
SerializerProvider provider,
JsonSerializer<java.lang.Object> ser) |
Method called to serialize fields, when the value type is statically known,
so that value serializer is passed and does not need to be fetched from
provider.
|
protected void |
serializeTypedFields(java.util.Map<?,?> value,
JsonGenerator jgen,
SerializerProvider provider) |
|
void |
serializeWithType(java.util.Map<?,?> value,
JsonGenerator jgen,
SerializerProvider provider,
TypeSerializer typeSer) |
Method that can be called to ask implementation to serialize
values of type this serializer handles, using specified type serializer
for embedding necessary type information.
|
withValueTypeSerializer
isUnwrappingSerializer, unwrappingSerializer
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createObjectNode, createSchemaNode, createSchemaNode, handledType, isDefaultSerializer, wrapAndThrow, wrapAndThrow, wrapAndThrow, wrapAndThrow
protected static final JavaType UNSPECIFIED_TYPE
protected final BeanProperty _property
protected final java.util.HashSet<java.lang.String> _ignoredEntries
protected final boolean _valueTypeIsStatic
protected final JavaType _keyType
protected final JavaType _valueType
protected JsonSerializer<java.lang.Object> _keySerializer
protected JsonSerializer<java.lang.Object> _valueSerializer
protected final TypeSerializer _valueTypeSerializer
protected PropertySerializerMap _dynamicValueSerializers
protected MapSerializer()
protected MapSerializer(java.util.HashSet<java.lang.String> ignoredEntries, JavaType keyType, JavaType valueType, boolean valueTypeIsStatic, TypeSerializer vts, JsonSerializer<java.lang.Object> keySerializer, JsonSerializer<java.lang.Object> valueSerializer, BeanProperty property)
public ContainerSerializerBase<?> _withValueTypeSerializer(TypeSerializer vts)
_withValueTypeSerializer
in class ContainerSerializerBase<java.util.Map<?,?>>
@Deprecated public static MapSerializer construct(java.lang.String[] ignoredList, JavaType mapType, boolean staticValueType, TypeSerializer vts, BeanProperty property)
ignoredList
- Array of entry names that are to be filtered on
serialization; null if nonemapType
- Declared type information (needed for static typing)staticValueType
- Whether static typing should be used for the
Map (which includes its contents)vts
- Type serializer to use for map entry values, if anypublic static MapSerializer construct(java.lang.String[] ignoredList, JavaType mapType, boolean staticValueType, TypeSerializer vts, BeanProperty property, JsonSerializer<java.lang.Object> keySerializer, JsonSerializer<java.lang.Object> valueSerializer)
public void serialize(java.util.Map<?,?> value, JsonGenerator jgen, SerializerProvider provider) throws java.io.IOException, JsonGenerationException
JsonSerializer
serialize
in class SerializerBase<java.util.Map<?,?>>
value
- Value to serialize; can not be null.jgen
- Generator used to output resulting Json contentprovider
- Provider that can be used to get serializers for
serializing Objects value contains, if any.java.io.IOException
JsonGenerationException
public void serializeWithType(java.util.Map<?,?> value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer) throws java.io.IOException, JsonGenerationException
JsonSerializer
Default implementation will ignore serialization of type information,
and just calls JsonSerializer.serialize(T, org.codehaus.jackson.JsonGenerator, org.codehaus.jackson.map.SerializerProvider)
: serializers that can embed
type information should override this to implement actual handling.
Most common such handling is done by something like:
// note: method to call depends on whether this type is serialized as JSON scalar, object or Array! typeSer.writeTypePrefixForScalar(value, jgen); serialize(value, jgen, provider); typeSer.writeTypeSuffixForScalar(value, jgen);
serializeWithType
in class JsonSerializer<java.util.Map<?,?>>
value
- Value to serialize; can not be null.jgen
- Generator used to output resulting Json contentprovider
- Provider that can be used to get serializers for
serializing Objects value contains, if any.typeSer
- Type serializer to use for including type informationjava.io.IOException
JsonGenerationException
public void serializeFields(java.util.Map<?,?> value, JsonGenerator jgen, SerializerProvider provider) throws java.io.IOException, JsonGenerationException
java.io.IOException
JsonGenerationException
protected void serializeFieldsUsing(java.util.Map<?,?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<java.lang.Object> ser) throws java.io.IOException, JsonGenerationException
java.io.IOException
JsonGenerationException
protected void serializeTypedFields(java.util.Map<?,?> value, JsonGenerator jgen, SerializerProvider provider) throws java.io.IOException, JsonGenerationException
java.io.IOException
JsonGenerationException
public JsonNode getSchema(SerializerProvider provider, java.lang.reflect.Type typeHint)
SerializerBase
getSchema
in interface SchemaAware
getSchema
in class SerializerBase<java.util.Map<?,?>>
provider
- The serializer provider.typeHint
- A hint about the type.public void resolve(SerializerProvider provider) throws JsonMappingException
resolve
in interface ResolvableSerializer
provider
- Provider that has constructed serializer this method
is called on.JsonMappingException
protected final JsonSerializer<java.lang.Object> _findAndAddDynamic(PropertySerializerMap map, java.lang.Class<?> type, SerializerProvider provider) throws JsonMappingException
JsonMappingException
protected final JsonSerializer<java.lang.Object> _findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider) throws JsonMappingException
JsonMappingException