com.fasterxml.jackson.databind.ser.std

## Class MapProperty

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase
  - - com.fasterxml.jackson.databind.ser.PropertyWriter
    - - com.fasterxml.jackson.databind.ser.std.MapProperty

All Implemented Interfaces:
  BeanProperty, Named, Serializable

    public class MapProperty
    extends PropertyWriter

Helper class needed to support flexible filtering of Map properties with generic JSON Filter functionality. Since `Map`s are not handled as a collection of properties by Jackson (unlike POJOs), bit more wrapping is required.

See Also:
  Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.BeanProperty

`BeanProperty.Bogus, BeanProperty.Std`

### Field Summary

Fields
`protected Object` `_key`
`protected JsonSerializer<Object>` `_keySerializer`
`protected BeanProperty` `_property`
`protected TypeSerializer` `_typeSerializer`
`protected Object` `_value`
`protected JsonSerializer<Object>` `_valueSerializer`

### Fields inherited from class com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase

`_aliases, _metadata`

### Fields inherited from interface com.fasterxml.jackson.databind.BeanProperty

`EMPTY_FORMAT, EMPTY_INCLUDE`

### Constructor Summary

Constructors
Constructor and Description
`MapProperty(TypeSerializer typeSer, BeanProperty prop)`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`void` `depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider)` Traversal method used for things like JSON Schema generation, or POJO introspection.
`void` `depositSchemaProperty(ObjectNode propertiesNode, SerializerProvider provider)` Deprecated.
`<A extends Annotation> A` `getAnnotation(Class<A> acls)` Method for accessing annotations directly declared for property that this writer is associated with.
`<A extends Annotation> A` `getContextAnnotation(Class<A> acls)` Method for accessing annotations declared in context of the property that this writer is associated with; usually this means annotations on enclosing class for property.
`PropertyName` `getFullName()` Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).
`AnnotatedMember` `getMember()` Method for accessing primary physical entity that represents the property; annotated field, method or constructor property.
`String` `getName()` Method to get logical name of the property
`JavaType` `getType()` Method to get declared type of the property.
`Object` `getValue()`
`PropertyName` `getWrapperName()` If property is indicated to be wrapped, name of wrapper element to use.
`void` `reset(Object key, JsonSerializer<Object> keySer, JsonSerializer<Object> valueSer)` Deprecated.
`void` `reset(Object key, Object value, JsonSerializer<Object> keySer, JsonSerializer<Object> valueSer)` Initialization method that needs to be called before passing property to filter.
`void` `serializeAsElement(Object map, com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider provider)` Serialization method called when output is to be done as an array, that is, not using property names.
`void` `serializeAsField(Object map, com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider provider)` The main serialization method called by filter when property is to be written normally.
`void` `serializeAsOmittedField(Object map, com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider provider)` Serialization method that filter needs to call in cases where property is to be filtered, but the underlying data format requires a placeholder of some kind.
`void` `serializeAsPlaceholder(Object value, com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider provider)` Serialization method called when doing tabular (positional) output from databind, but then value is to be omitted.
`void` `setValue(Object v)`

### Methods inherited from class com.fasterxml.jackson.databind.ser.PropertyWriter

`findAnnotation`

### Methods inherited from class com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase

`findAliases, findFormatOverrides, findPropertyFormat, findPropertyInclusion, getMetadata, isRequired, isVirtual`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### _typeSerializer

    protected final TypeSerializer _typeSerializer

#### _property

    protected final BeanProperty _property

#### _key

    protected Object _key

#### _value

    protected Object _value

#### _keySerializer

    protected JsonSerializer<Object> _keySerializer

#### _valueSerializer

    protected JsonSerializer<Object> _valueSerializer

### Constructor Detail

#### MapProperty

    public MapProperty(TypeSerializer typeSer,
                       BeanProperty prop)

### Method Detail

#### reset

    public void reset(Object key,
                      Object value,
                      JsonSerializer<Object> keySer,
                      JsonSerializer<Object> valueSer)

Initialization method that needs to be called before passing property to filter.

Since:
  2.9

#### reset

    @Deprecated
    public void reset(Object key,
                                  JsonSerializer<Object> keySer,
                                  JsonSerializer<Object> valueSer)

Deprecated.

#### getName

    public String getName()

Description copied from interface: `BeanProperty`
Method to get logical name of the property

Specified by:
  `getName` in interface `BeanProperty`
Specified by:
  `getName` in interface `Named`
Specified by:
  `getName` in class `PropertyWriter`

#### getValue

    public Object getValue()

Since:
  2.9

#### setValue

    public void setValue(Object v)

Since:
  2.9

#### getFullName

    public PropertyName getFullName()

Description copied from interface: `BeanProperty`
Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).

Specified by:
  `getFullName` in interface `BeanProperty`
Specified by:
  `getFullName` in class `PropertyWriter`

#### getAnnotation

    public <A extends Annotation> A getAnnotation(Class<A> acls)

Description copied from class: `PropertyWriter`
Method for accessing annotations directly declared for property that this writer is associated with.

Specified by:
  `getAnnotation` in interface `BeanProperty`
Specified by:
  `getAnnotation` in class `PropertyWriter`

#### getContextAnnotation

    public <A extends Annotation> A getContextAnnotation(Class<A> acls)

Description copied from class: `PropertyWriter`
Method for accessing annotations declared in context of the property that this writer is associated with; usually this means annotations on enclosing class for property.

Specified by:
  `getContextAnnotation` in interface `BeanProperty`
Specified by:
  `getContextAnnotation` in class `PropertyWriter`

#### serializeAsField

    public void serializeAsField(Object map,
                                 com.fasterxml.jackson.core.JsonGenerator gen,
                                 SerializerProvider provider)
                          throws IOException

Description copied from class: `PropertyWriter`
The main serialization method called by filter when property is to be written normally.

Specified by:
  `serializeAsField` in class `PropertyWriter`
Throws:
  `IOException`

#### serializeAsOmittedField

    public void serializeAsOmittedField(Object map,
                                        com.fasterxml.jackson.core.JsonGenerator gen,
                                        SerializerProvider provider)
                                 throws Exception

Description copied from class: `PropertyWriter`
Serialization method that filter needs to call in cases where property is to be filtered, but the underlying data format requires a placeholder of some kind. This is usually the case for tabular (positional) data formats such as CSV.

Specified by:
  `serializeAsOmittedField` in class `PropertyWriter`
Throws:
  `Exception`

#### serializeAsElement

    public void serializeAsElement(Object map,
                                   com.fasterxml.jackson.core.JsonGenerator gen,
                                   SerializerProvider provider)
                            throws Exception

Description copied from class: `PropertyWriter`
Serialization method called when output is to be done as an array, that is, not using property names. This is needed when serializing container (`Collection`, array) types, or POJOs using `tabular` ("as array") output format.

Note that this mode of operation is independent of underlying data format; so it is typically NOT called for fully tabular formats such as CSV, where logical output is still as form of POJOs.

Specified by:
  `serializeAsElement` in class `PropertyWriter`
Throws:
  `Exception`

#### serializeAsPlaceholder

    public void serializeAsPlaceholder(Object value,
                                       com.fasterxml.jackson.core.JsonGenerator gen,
                                       SerializerProvider provider)
                                throws Exception

Description copied from class: `PropertyWriter`
Serialization method called when doing tabular (positional) output from databind, but then value is to be omitted. This requires output of a placeholder value of some sort; often similar to `PropertyWriter.serializeAsOmittedField(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)`.

Specified by:
  `serializeAsPlaceholder` in class `PropertyWriter`
Throws:
  `Exception`

#### depositSchemaProperty

    public void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor,
                                      SerializerProvider provider)
                               throws JsonMappingException

Description copied from class: `PropertyWriter`
Traversal method used for things like JSON Schema generation, or POJO introspection.

Specified by:
  `depositSchemaProperty` in interface `BeanProperty`
Specified by:
  `depositSchemaProperty` in class `PropertyWriter`
Parameters:
  `objectVisitor` - Visitor to used as the callback handler
Throws:
  `JsonMappingException`

#### depositSchemaProperty

    @Deprecated
    public void depositSchemaProperty(ObjectNode propertiesNode,
                                                  SerializerProvider provider)
                                           throws JsonMappingException

Deprecated.
Description copied from class: `PropertyWriter`
Legacy method called for JSON Schema generation; should not be called by new code

Specified by:
  `depositSchemaProperty` in class `PropertyWriter`
Throws:
  `JsonMappingException`

#### getType

    public JavaType getType()

Description copied from interface: `BeanProperty`
Method to get declared type of the property.

#### getWrapperName

    public PropertyName getWrapperName()

Description copied from interface: `BeanProperty`
If property is indicated to be wrapped, name of wrapper element to use.

#### getMember

    public AnnotatedMember getMember()

Description copied from interface: `BeanProperty`
Method for accessing primary physical entity that represents the property; annotated field, method or constructor property.