Public core annotations, most of which are used to configure how Data Mapping/Binding works. Annotations in this package can only have dependencies to non-annotation classes in Core package; annotations that have dependencies to Mapper classes are included in Mapper module (under
org.codehaus.jackson.map.annotate). Also contains parameter types (mostly enums) needed by annotations.
Note that prior versions (1.x) contained these annotations within 'core' jar, as part of Streaming API.
Interface Summary Interface Description JacksonAnnotationValue<A extends Annotation>Marker interface used by value classes like
JsonFormat.Valuethat are used to contain information from one of Jackson annotations, and can be directly instantiated from those annotations, as well as programmatically constructed and possibly merged.
ObjectIdResolverDefinition of API used for resolving actual Java object from Object Identifiers (as annotated using
Class Summary Class Description JacksonInject.ValueHelper class used to contain information from a single
JacksonInjectannotation, as well as to provide possible overrides from non-annotation sources.
JsonAutoDetect.ValueHelper class used to contain information from a single
JsonIgnorePropertiesannotation, as well as to provide possible overrides from non-annotation sources.
JsonFormat.Features JsonFormat.ValueHelper class used to contain information from a single
JsonIgnoreProperties.ValueHelper class used to contain information from a single
JsonIgnorePropertiesannotation, as well as to provide possible overrides from non-annotation sources.
JsonInclude.ValueHelper class used to contain information from a single
JsonIncludeProperties.ValueHelper class used to contain information from a single
JsonIncludePropertiesannotation, as well as to provide possible overrides from non-annotation sources.
JsonSetter.ValueHelper class used to contain information from a single
JsonSetterannotation, as well as to provide possible overrides from non-annotation sources.
JsonTypeInfo.None Deprecated.Since 2.5, use any Annotation type (such as
JsonTypeInfo, if such behavior is needed; this is rarely necessary.
ObjectIdGenerator<T>Definition of API used for constructing Object Identifiers (as annotated using
ObjectIdGenerator.IdKeySimple key class that can be used as a key for ObjectId-to-POJO mappings, when multiple ObjectId types and scopes are used. ObjectIdGenerators ObjectIdGenerators.IntSequenceGeneratorSimple sequence-number based generator, which uses basic Java
ints (starting with value 1) as Object Identifiers.
ObjectIdGenerators.NoneAbstract marker class used to allow explicitly specifying that no generator is used; which also implies that no Object Id is to be included or used. ObjectIdGenerators.PropertyGeneratorAbstract place-holder class which is used to denote case where Object Identifier to use comes from a POJO property (getter method or field). ObjectIdGenerators.StringIdGeneratorImplementation that will accept arbitrary (but unique) String Ids on deserialization, and (by default) use random UUID generation similar to
ObjectIdGenerators.UUIDGeneratorfor generation ids.
ObjectIdGenerators.UUIDGeneratorImplementation that just uses
UUIDs as reliably unique identifiers: downside is that resulting String is 36 characters long.
SimpleObjectIdResolverSimple implementation of
Enum Summary Enum Description JsonAutoDetect.VisibilityEnumeration for possible visibility thresholds (minimum visibility) that can be used to limit which methods (and fields) are auto-detected. JsonCreator.Mode JsonFormat.FeatureSet of features that can be enabled/disabled for property annotated. JsonFormat.ShapeValue enumeration used for indicating preferred Shape; translates loosely to JSON types, with some extra values to indicate less precise choices (i.e. JsonInclude.IncludeEnumeration used with
JsonIncludeto define which properties of Java Beans are to be included in serialization.
JsonProperty.AccessVarious options for
JsonProperty.access()property, specifying how property may be accessed during serialization ("read") and deserialization ("write") (note that the direction of read and write is from perspective of the property, not from external data format: this may be confusing in some contexts).
JsonTypeInfo.AsDefinition of standard type inclusion mechanisms for type metadata. JsonTypeInfo.IdDefinition of different type identifiers that can be included in JSON during serialization, and used for deserialization. NullsEnumeration used with
JsonSetter(for properties `nulls` and `contentNulls`) to define how explicit `null` values from input (if input format has the concept; JSON, for example does) are handled.
OptBooleanOptional Boolean value ("nullean"). PropertyAccessorEnumeration used to define kinds of elements (called "property accessors") that annotations like
Annotation Types Summary Annotation Type Description JacksonAnnotationMeta-annotation (annotations used on other annotations) used for marking all annotations that are part of Jackson package. JacksonAnnotationsInsideMeta-annotation (annotations used on other annotations) used for indicating that instead of using target annotation (annotation annotated with this annotation), Jackson should use meta-annotations it has. JacksonInjectJackson-specific annotation used for indicating that value of annotated property will be "injected", i.e. JsonAliasAnnotation that can be used to define one or more alternative names for a property, accepted during deserialization as alternative to the official name. JsonAnyGetterMarker annotation that can be used to define a non-static, no-argument method to be an "any getter"; accessor for getting a set of key/value pairs, to be serialized as part of containing POJO (similar to unwrapping) along with regular property values it has. JsonAnySetterMarker annotation that can be used to define a logical "any setter" mutator -- either using non-static two-argument method (first argument name of property, second value to set) or a field (of type
Mapor POJO) - to be used as a "fallback" handler for all otherwise unrecognized properties found from JSON content.
JsonAutoDetectClass annotation that can be used to define which kinds of Methods are to be detected by auto-detection, and with what minimum access level. JsonBackReferenceAnnotation used to indicate that associated property is part of two-way linkage between fields; and that its role is "child" (or "back") link. JsonClassDescriptionAnnotation used to define a human readable description for annotated type (class). JsonCreatorMarker annotation that can be used to define constructors and factory methods as one to use for instantiating new instances of the associated class. JsonEnumDefaultValueMarker annotation that can be used to define a default value used when trying to deserialize unknown Enum values. JsonFilterAnnotation used to indicate which logical filter is to be used for filtering out properties of type (class) annotated; association made by this annotation declaring ids of filters, and
com.fasterxml.jackson.databind.ObjectMapper(or objects it delegates to) providing matching filters by id.
JsonFormatGeneral-purpose annotation used for configuring details of how values of properties are to be serialized. JsonGetterMarker annotation that can be used to define a non-static, no-argument value-returning (non-void) method to be used as a "getter" for a logical property. JsonIdentityInfoAnnotation used for indicating that values of annotated type or property should be serializing so that instances either contain additional object identifier (in addition actual object properties), or as a reference that consists of an object id that refers to a full serialization. JsonIdentityReferenceOptional annotation that can be used for customizing details of a reference to Objects for which "Object Identity" is enabled (see
JsonIgnoreMarker annotation that indicates that the logical property that the accessor (field, getter/setter method or Creator parameter [of
JsonCreator-annotated constructor or factory method]) is to be ignored by introspection-based serialization and deserialization functionality.
JsonIgnorePropertiesAnnotation that can be used to either suppress serialization of properties (during serialization), or ignore processing of JSON properties read (during deserialization). JsonIgnoreTypeMarker annotation that indicates that all properties that have type annotated with this annotation are to be ignored during serialization and deserialization. JsonIncludeAnnotation used to indicate when value of the annotated property (when used for a field, method or constructor parameter), or all properties of the annotated class, is to be serialized. JsonIncludePropertiesAnnotation that can be used to either only include serialization of properties (during serialization), or only include processing of JSON properties read (during deserialization). JsonKeyMarker annotation that indicates that the value of annotated accessor (either field or "getter" method [a method with non-void return type, no args]) is to be used as the single value to serialize for the instance. JsonManagedReferenceAnnotation used to indicate that annotated property is part of two-way linkage between fields; and that its role is "parent" (or "forward") link. JsonMergeAnnotation to specify whether annotated property value should use "merging" approach: merging meaning that the current value is first accessed (with a getter or field) and then modified with incoming data. JsonPropertyMarker annotation that can be used to define a non-static method as a "setter" or "getter" for a logical property (depending on its signature), or non-static object field to be used (serialized, deserialized) as a logical property. JsonPropertyDescriptionAnnotation used to define a human readable description for a logical property. JsonPropertyOrderAnnotation that can be used to define ordering (possibly partial) to use when serializing object properties. JsonRawValueMarker annotation that indicates that the annotated method or field should be serialized by including literal String value of the property as is, without quoting of characters. JsonRootNameAnnotation similar to
javax.xml.bind.annotation.XmlRootElement, used to indicate name to use for root-level wrapping, if wrapping is enabled.
JsonSetterAnnotation that can be used to define a non-static, single-argument method to be used as a "setter" for a logical property as an alternative to recommended
JsonPropertyannotation; or (as of 2.9 and later), specify additional aspects of the assigning property a value during serialization.
JsonSubTypesAnnotation used with
JsonTypeInfoto indicate sub-types of serializable polymorphic types, and to associate logical names used within JSON content (which is more portable than using physical Java class names).
JsonSubTypes.TypeDefinition of a subtype, along with optional name(s). JsonTypeIdMarker annotation that can be used on a property accessor (field, getter or setter, constructor parameter) to indicate that the property is to contain type id to use when including polymorphic type information. JsonTypeInfoAnnotation used for configuring details of if and how type information is used with JSON serialization and deserialization, to preserve information about actual class of Object instances. JsonTypeNameAnnotation used for binding logical name that the annotated class has. JsonUnwrappedAnnotation used to indicate that a property should be serialized "unwrapped" -- that is, if it would be serialized as JSON Object, its properties are instead included as properties of its containing Object -- and deserialized reproducing "missing" structure. JsonValueMarker annotation that indicates that the value of annotated accessor (either field or "getter" method [a method with non-void return type, no args]) is to be used as the single value to serialize for the instance, instead of the usual method of collecting properties of value. JsonViewAnnotation used for indicating view(s) that the property that is defined by method or field annotated is part of.