|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.fasterxml.jackson.databind.JsonSerializer<T> com.fasterxml.jackson.databind.ser.std.StdSerializer<Object> com.fasterxml.jackson.databind.ser.std.BeanSerializerBase com.fasterxml.jackson.databind.ser.impl.BeanAsArraySerializer
public class BeanAsArraySerializer
Specialized POJO serializer that differs from
BeanSerializer
in that instead of producing a JSON Object it will output
a JSON Array, omitting field names, and serializing values in
specified serialization order.
This behavior is usually triggered by using annotation
JsonFormat
or its
equivalents.
This serializer can be used for "simple" instances; and will NOT be used if one of following is true:
In cases where array-based output is not feasible, this serializer can instead delegate to the original Object-based serializer; this is why a reference is retained to the original serializer.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer |
---|
JsonSerializer.None |
Field Summary | |
---|---|
protected BeanSerializerBase |
_defaultSerializer
Serializer that would produce JSON Object version; used in cases where array output can not be used. |
Fields inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase |
---|
_anyGetterWriter, _filteredProps, _objectIdWriter, _propertyFilterId, _props, _serializationShape, _typeId, NO_PROPS |
Fields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer |
---|
_handledType |
Constructor Summary | |
---|---|
|
BeanAsArraySerializer(BeanSerializerBase src)
|
protected |
BeanAsArraySerializer(BeanSerializerBase src,
String[] toIgnore)
|
Method Summary | |
---|---|
protected BeanSerializerBase |
asArraySerializer()
Fluent factory for creating a variant that output POJO as a JSON Array. |
boolean |
isUnwrappingSerializer()
Accessor for checking whether this serializer is an "unwrapping" serializer; this is necessary to know since it may also require caller to suppress writing of the leading property name. |
void |
serialize(Object bean,
JsonGenerator jgen,
SerializerProvider provider)
Main serialization method that will delegate actual output to configured BeanPropertyWriter instances. |
protected void |
serializeAsArray(Object bean,
JsonGenerator jgen,
SerializerProvider provider)
|
void |
serializeWithType(Object bean,
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. |
String |
toString()
|
JsonSerializer<Object> |
unwrappingSerializer(NameTransformer transformer)
Method that will return serializer instance that produces "unwrapped" serialization, if applicable for type being serialized (which is the case for some serializers that produce JSON Objects as output). |
protected BeanAsArraySerializer |
withIgnorals(String[] toIgnore)
Fluent factory used for creating a new instance with additional set of properties to ignore (from properties this instance otherwise has) |
BeanSerializerBase |
withObjectIdWriter(ObjectIdWriter objectIdWriter)
Fluent factory used for creating a new instance with different ObjectIdWriter . |
Methods inherited from class com.fasterxml.jackson.databind.ser.std.BeanSerializerBase |
---|
acceptJsonFormatVisitor, createContextual, findFilter, getSchema, resolve, serializeFields, serializeFieldsFiltered, usesObjectId |
Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer |
---|
createObjectNode, createSchemaNode, createSchemaNode, getSchema, handledType, isDefaultSerializer, wrapAndThrow, wrapAndThrow |
Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer |
---|
getDelegatee, isEmpty, replaceDelegatee |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.fasterxml.jackson.databind.jsonschema.SchemaAware |
---|
getSchema |
Field Detail |
---|
protected final BeanSerializerBase _defaultSerializer
Constructor Detail |
---|
public BeanAsArraySerializer(BeanSerializerBase src)
protected BeanAsArraySerializer(BeanSerializerBase src, String[] toIgnore)
Method Detail |
---|
public JsonSerializer<Object> unwrappingSerializer(NameTransformer transformer)
JsonSerializer
Default implementation just returns serializer as-is, indicating that no unwrapped variant exists
unwrappingSerializer
in class JsonSerializer<Object>
transformer
- Name transformation to use to convert between names
of unwrapper propertiespublic boolean isUnwrappingSerializer()
JsonSerializer
isUnwrappingSerializer
in class JsonSerializer<Object>
public BeanSerializerBase withObjectIdWriter(ObjectIdWriter objectIdWriter)
BeanSerializerBase
ObjectIdWriter
.
withObjectIdWriter
in class BeanSerializerBase
protected BeanAsArraySerializer withIgnorals(String[] toIgnore)
BeanSerializerBase
withIgnorals
in class BeanSerializerBase
protected BeanSerializerBase asArraySerializer()
BeanSerializerBase
asArraySerializer
in class BeanSerializerBase
public void serializeWithType(Object bean, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer) throws IOException, JsonGenerationException
JsonSerializer
Default implementation will throw UnsupportedOperationException
to indicate that proper type handling needs to be implemented.
For simple datatypes written as a single scalar value (JSON String, Number, Boolean), implementation would look 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);and implementations for type serialized as JSON Arrays or Objects would differ slightly, as
START-ARRAY>/END-ARRAY
and
START-OBJECT>/END-OBJECT
pairs
need to be properly handled with respect to serializing of contents.
- Overrides:
serializeWithType
in class BeanSerializerBase
- Parameters:
bean
- 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 information
- Throws:
IOException
JsonGenerationException
public final void serialize(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException
BeanPropertyWriter
instances.
serialize
in class BeanSerializerBase
bean
- 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.
IOException
JsonGenerationException
protected final void serializeAsArray(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException
IOException
JsonGenerationException
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |