Top Description Interfaces Annotations Classes Enums
[default module]

Package com.fasterxml.jackson.annotation


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

Modifier and TypeInterface and Description
public interface
JacksonAnnotationValue<A extends Annotation>

Marker interface used by value classes like JsonFormat.Value that 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.

public interface
ObjectIdResolver

Definition of API used for resolving actual Java object from Object Identifiers (as annotated using JsonIdentityInfo).

Annotation Summary

Modifier and TypeAnnotation and Description
public @interface
JacksonAnnotation

Meta-annotation (annotations used on other annotations) used for marking all annotations that are part of Jackson package.

public @interface
JacksonAnnotationsInside

Meta-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.

public @interface
JacksonInject

Jackson-specific annotation used for indicating that value of annotated property will be "injected", i.e. set based on value configured by ObjectMapper (usually on per-call basis).

public @interface
JsonAlias

Annotation that can be used to define one or more alternative names for a property, accepted during deserialization as alternative to the official name.

public @interface
JsonAnyGetter

Marker 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.

public @interface
JsonAnySetter

Marker 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 java.util.Map or POJO) - to be used as a "fallback" handler for all otherwise unrecognized properties found from JSON content.

public @interface
JsonAutoDetect

Class annotation that can be used to define which kinds of Methods are to be detected by auto-detection, and with what minimum access level.

public @interface
JsonBackReference

Annotation used to indicate that associated property is part of two-way linkage between fields; and that its role is "child" (or "back") link.

public @interface
JsonClassDescription

Annotation used to define a human-readable description for annotated type (class).

public @interface
JsonCreator

Marker annotation that can be used to define constructors and factory methods as one to use for instantiating new instances of the associated class.

public @interface
JsonEnumDefaultValue

Marker annotation that can be used to define a default value used when trying to deserialize unknown Enum values.

public @interface
JsonFilter

Annotation 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.

Filters to use are usually of type com.fasterxml.jackson.databind.ser.PropertyFilter and are registered through com.fasterxml.jackson.databind.ObjectMapper

Since 2.3, this annotation can also be used on properties (fields, methods, constructor parameters).

public @interface
JsonFormat

General-purpose annotation used for configuring details of how values of properties are to be serialized.

public @interface
JsonGetter

Marker 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.

public @interface
JsonIdentityInfo

Annotation 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.

public @interface
JsonIdentityReference

Optional annotation that can be used for customizing details of a reference to Objects for which "Object Identity" is enabled (see JsonIdentityInfo).

public @interface
JsonIgnore

Marker 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.

public @interface
JsonIgnoreProperties

Annotation that can be used to either suppress serialization of properties (during serialization), or ignore processing of JSON properties read (during deserialization).

public @interface
JsonIgnoreType

Marker annotation that indicates that all properties that have type annotated with this annotation are to be ignored during serialization and deserialization.

public @interface
JsonInclude

Annotation 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.

public @interface
JsonIncludeProperties

Annotation that can be used to either only include serialization of properties (during serialization), or only include processing of JSON properties read (during deserialization).

public @interface
JsonKey

Marker 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.

public @interface
JsonManagedReference

Annotation used to indicate that annotated property is part of two-way linkage between fields; and that its role is "parent" (or "forward") link.

public @interface
JsonMerge

Annotation 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.

public @interface
JsonProperty

Marker annotation that can be used to define a non-static method as a "setter" or "getter" for a logical property accessor (depending on its signature), or a non-static Object field to be used (serialized, deserialized) as a logical property (to assign value or get value from)

Value ("") indicates that the name of field (or, derived name of an accessor method (setter / getter)) is to be used as the property name without any modifications; a non-empty value can be used to specify a different name.

public @interface
JsonPropertyDescription

Annotation used to define a human-readable description for a logical property.

public @interface
JsonPropertyOrder

Annotation that can be used to define ordering (possibly partial) to use when serializing object properties.

public @interface
JsonRawValue

Marker 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.

public @interface
JsonRootName

Annotation similar to javax.xml.bind.annotation.XmlRootElement, used to indicate name to use for root-level wrapping, if wrapping is enabled.

public @interface
JsonSetter

Annotation 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 JsonProperty annotation; or (as of 2.9 and later), specify additional aspects of the assigning property a value during serialization.

public @interface
JsonSubTypes

Annotation used with JsonTypeInfo to indicate subtypes of serializable polymorphic types, and to associate logical names used within JSON content (which is more portable than using physical Java class names).

public @interface
JsonTypeId

Marker 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.

public @interface
JsonTypeInfo

Annotation 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.

public @interface
JsonTypeName

Annotation used for binding logical name that the annotated class has.

public @interface
JsonUnwrapped

Annotation used to indicate that a POJO-valued property should be serialized "unwrapped" -- that is, if it would be serialized as Object value, its properties are instead included as properties of its containing Object -- and deserialized reproducing "missing" structure.

public @interface
JsonValue

Marker 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.

public @interface
JsonView

Annotation used for indicating view(s) that the property that is defined by method or field annotated is part of.

Class Summary

Modifier and TypeClass and Description
public abstract class
ObjectIdGenerator<
Type of Object Identifiers produced.
T
>

Definition of API used for constructing Object Identifiers (as annotated using JsonIdentityInfo).

public class
public class
SimpleObjectIdResolver

Simple implementation of ObjectIdResolver

Enum Summary

Modifier and TypeEnum and Description
public enum
Nulls

Enumeration 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.

public enum
OptBoolean

Optional Boolean value ("nullean").

public enum
PropertyAccessor

Enumeration used to define kinds of elements (called "property accessors") that annotations like JsonAutoDetect apply to.