java.lang.Object
tools.jackson.databind.ValueSerializer<T>
tools.jackson.databind.ser.std.StdSerializer<Object>
tools.jackson.databind.ser.bean.BeanSerializerBase
tools.jackson.databind.ser.BeanSerializer
- All Implemented Interfaces:
JsonFormatVisitable
Serializer class that can serialize Java objects that map
to JSON Object output. Internally handling is mostly dealt with
by a sequence of
BeanPropertyWriter
s that will handle
access value to serialize and call appropriate serializers to
write out JSON.
Implementation note: we will post-process resulting serializer,
to figure out actual serializers for final types. This must be
done from BeanSerializerBase.resolve(tools.jackson.databind.SerializationContext)
method, and NOT from constructor;
otherwise we could end up with an infinite loop.
-
Nested Class Summary
Nested classes/interfaces inherited from class tools.jackson.databind.ValueSerializer
ValueSerializer.None
-
Field Summary
Fields inherited from class tools.jackson.databind.ser.bean.BeanSerializerBase
_beanType, _filteredProps, _objectIdWriter, _propertyFilterId, _props, _serializationShape, _typeId, NAME_FOR_OBJECT_REF, NO_PROPS
Fields inherited from class tools.jackson.databind.ser.std.StdSerializer
_handledType
-
Constructor Summary
ConstructorsModifierConstructorDescriptionBeanSerializer
(JavaType type, BeanSerializerBuilder builder, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) protected
Alternate copy constructor that can be used to construct standardBeanSerializer
passing an instance of "compatible enough" source serializer.protected
BeanSerializer
(BeanSerializerBase src, Set<String> toIgnore, Set<String> toInclude) protected
BeanSerializer
(BeanSerializerBase src, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) protected
BeanSerializer
(BeanSerializerBase src, ObjectIdWriter objectIdWriter) protected
BeanSerializer
(BeanSerializerBase src, ObjectIdWriter objectIdWriter, Object filterId) -
Method Summary
Modifier and TypeMethodDescriptionprotected BeanSerializerBase
Implementation has to check whether as-array serialization is possible reliably; if (and only if) so, will construct aBeanAsArraySerializer
, otherwise will return this serializer as is.static BeanSerializer
createDummy
(JavaType forType, BeanSerializerBuilder builder) Method for constructing dummy bean serializer; one that never outputs any propertiesvoid
serialize
(Object bean, tools.jackson.core.JsonGenerator gen, SerializationContext provider) Main serialization method that will delegate actual output to configuredBeanPropertyWriter
instances.unwrappingSerializer
(NameTransformer unwrapper) Lets force sub-classes to implement this, to avoid accidental missing of handling...protected BeanSerializerBase
withByNameInclusion
(Set<String> toIgnore, Set<String> toInclude) Mutant factory used for creating a new instance with additional set of properties to ignore or include (from properties this instance otherwise has)withFilterId
(Object filterId) Mutant factory used for creating a new instance with different filter id (used withJsonFilter
annotation)withIgnoredProperties
(Set<String> toIgnore) Mutant factory method called to create a new instance after excluding specified set of properties by name, if there is any.withObjectIdWriter
(ObjectIdWriter objectIdWriter) Mutant factory used for creating a new instance with differentObjectIdWriter
.protected BeanSerializerBase
withProperties
(BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) Mutant factory used for creating a new instance with modified set of propertiesMethods inherited from class tools.jackson.databind.ser.bean.BeanSerializerBase
_serializeObjectId, _serializeProperties, _serializePropertiesFiltered, _serializePropertiesMaybeView, _serializePropertiesNoView, _serializeWithObjectId, _serializeWithObjectId, _typeIdDef, acceptJsonFormatVisitor, canCreateArraySerializer, createContextual, findConvertingSerializer, getFilterId, hasViewProperties, properties, propertyCount, resolve, serializeWithType, toString, usesObjectId
Methods inherited from class tools.jackson.databind.ser.std.StdSerializer
_neitherNull, _nonEmpty, _wrapIOFailure, acceptJsonFormatVisitorForBinary, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow
Methods inherited from class tools.jackson.databind.ValueSerializer
getDelegatee, isEmpty, isUnwrappingSerializer, replaceDelegatee, withFormatOverrides
-
Constructor Details
-
BeanSerializer
public BeanSerializer(JavaType type, BeanSerializerBuilder builder, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) - Parameters:
builder
- Builder object that contains collected information that may be needed for serializerproperties
- Property writers used for actual serialization
-
BeanSerializer
Alternate copy constructor that can be used to construct standardBeanSerializer
passing an instance of "compatible enough" source serializer. -
BeanSerializer
-
BeanSerializer
-
BeanSerializer
-
BeanSerializer
protected BeanSerializer(BeanSerializerBase src, BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties)
-
-
Method Details
-
createDummy
Method for constructing dummy bean serializer; one that never outputs any properties -
unwrappingSerializer
Description copied from class:BeanSerializerBase
Lets force sub-classes to implement this, to avoid accidental missing of handling...- Specified by:
unwrappingSerializer
in classBeanSerializerBase
- Parameters:
unwrapper
- Name transformation to use to convert between names of unwrapper properties
-
withObjectIdWriter
Description copied from class:BeanSerializerBase
Mutant factory used for creating a new instance with differentObjectIdWriter
.- Specified by:
withObjectIdWriter
in classBeanSerializerBase
-
withFilterId
Description copied from class:BeanSerializerBase
Mutant factory used for creating a new instance with different filter id (used withJsonFilter
annotation)- Specified by:
withFilterId
in classBeanSerializerBase
-
withByNameInclusion
Description copied from class:BeanSerializerBase
Mutant factory used for creating a new instance with additional set of properties to ignore or include (from properties this instance otherwise has)- Specified by:
withByNameInclusion
in classBeanSerializerBase
-
withProperties
protected BeanSerializerBase withProperties(BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties) Description copied from class:BeanSerializerBase
Mutant factory used for creating a new instance with modified set of properties- Specified by:
withProperties
in classBeanSerializerBase
-
withIgnoredProperties
Description copied from class:ValueSerializer
Mutant factory method called to create a new instance after excluding specified set of properties by name, if there is any.- Overrides:
withIgnoredProperties
in classValueSerializer<Object>
- Parameters:
toIgnore
- Set of property names to ignore for serialization;- Returns:
- Serializer instance that without specified set of properties to ignore (if any)
-
asArraySerializer
Implementation has to check whether as-array serialization is possible reliably; if (and only if) so, will construct aBeanAsArraySerializer
, otherwise will return this serializer as is.- Specified by:
asArraySerializer
in classBeanSerializerBase
-
serialize
public void serialize(Object bean, tools.jackson.core.JsonGenerator gen, SerializationContext provider) throws tools.jackson.core.JacksonException Main serialization method that will delegate actual output to configuredBeanPropertyWriter
instances.- Specified by:
serialize
in classBeanSerializerBase
- Parameters:
bean
- Value to serialize; can not be null.gen
- Generator used to output resulting Json contentprovider
- Context that can be used to get serializers for serializing Objects value contains, if any.- Throws:
tools.jackson.core.JacksonException
-