## Uses of Class
org.codehaus.jackson.annotate.JacksonAnnotation

- Packages that use JacksonAnnotation
  Package | Description
  --- | ---
  org.codehaus.jackson.annotate | Public core annotations, most of which are used to configure how Data Mapping/Binding works.
  org.codehaus.jackson.map.annotate | Annotations that directly depend on Mapper classes (not just Jackson core) and are used for configuring Data Mapping functionality.
  org.codehaus.jackson.schema | Classes needed for JSON schema support (currently just ability to generate schemas using serialization part of data mapping)

- - ### Uses of JacksonAnnotation in org.codehaus.jackson.annotate

    Classes in org.codehaus.jackson.annotate with annotations of type JacksonAnnotation
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `JsonAnyGetter` Marker annotation that can be used to define a non-static, no-argument method or member field as something of a reverse of `JsonAnySetter` method; basically being used like a getter but such that contents of the returned Map (type must be `Map`) are serialized as if they were actual properties of the bean that contains method/field with this annotations.
    `interface` | `JsonAnySetter` Marker annotation that can be used to define a non-static, single-argument method, to be used as a "fallback" handler for all otherwise unrecognized properties found from Json content.
    `interface` | `JsonAutoDetect` Class annotation that can be used to define which kinds of Methods are to be detected by auto-detection.
    `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.
    `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.
    `interface` | `JsonGetter` Deprecated. Use `JsonProperty` instead (deprecated since version 1.5)
    `interface` | `JsonIgnore` Marker annotation that indicates that the annotated method or field is to be ignored by introspection-based serialization and deserialization functionality.
    `interface` | `JsonIgnoreProperties` Annotation that can be used to either suppress serialization of properties (during serialization), or ignore processing of JSON properties read (during deserialization).
    `interface` | `JsonIgnoreType` Marker annotation that indicates that all properties of annotated type are to be ignored during serialization and deserialization.
    `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.
    `interface` | `JsonProperty` Marker 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.
    `interface` | `JsonPropertyOrder` Annotation that can be used to define ordering (possibly partial) to use when serializing object properties.
    `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.
    `interface` | `JsonSetter` Marker 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 (which was introduced in version 1.1).
    `interface` | `JsonSubTypes` Annotation used with `JsonTypeInfo` to 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).
    `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.
    `interface` | `JsonTypeName` Annotation used for binding logical name that the annotated class has.
    `interface` | `JsonUnwrapped` Annotation 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.
    `interface` | `JsonValue` Marker annotation similar to `XmlValue` that indicates that results of the annotated "getter" method (which means signature must be that of getters; non-void return type, no args) is to be used as the single value to serialize for the instance.
    `interface` | `JsonWriteNullProperties` Deprecated. (since 1.6) Currently recommended annotation to use is `JsonSerialize.include()` (with values `ALWAYS` or `NON_NULL`)

  - ### Uses of JacksonAnnotation in org.codehaus.jackson.map.annotate

    Classes in org.codehaus.jackson.map.annotate with annotations of type JacksonAnnotation
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `JacksonInject` Jackson-specific annotation used for indicating that value of annotated property will be "injected", i.e.
    `interface` | `JacksonStdImpl` Marker interface used to indicate implementation classes (serializers, deserializers etc) that are standard ones Jackson uses; not custom ones that application has added.
    `interface` | `JsonCachable` Marker annotation used to denote whether given instance (currently only used with `JsonDeserializer`) can be cached.
    `interface` | `JsonDeserialize` Annotation use for configuring deserialization aspects, by attaching to "setter" methods or fields, or to value classes.
    `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 `ObjectMapper` (or objects it delegates to) providing matching filters by id.
    `interface` | `JsonRootName` Annotation similar to `XmlRootElement`, used to indicate name to use for root-level wrapping, if wrapping is enabled.
    `interface` | `JsonSerialize` Annotation used for configuring serialization aspects, by attaching to "getter" methods or fields, or to value classes.
    `interface` | `JsonTypeIdResolver` Annotation that can be used to plug a custom type identifier handler (`TypeIdResolver`) to be used by `TypeSerializer`s and `TypeDeserializer`s for converting between java types and type id included in JSON content.
    `interface` | `JsonTypeResolver` Annotation that can be used to explicitly define custom resolver used for handling serialization and deserialization of type information, needed for handling of polymorphic types (or sometimes just for linking abstract types to concrete types)
    `interface` | `JsonValueInstantiator` Annotation that can be used to indicate a `ValueInstantiator` to use for creating instances of specified type.
    `interface` | `JsonView` Annotation used for indicating view(s) that the property that is defined by method or field annotated is part of.

  - ### Uses of JacksonAnnotation in org.codehaus.jackson.schema

    Classes in org.codehaus.jackson.schema with annotations of type JacksonAnnotation
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `JsonSerializableSchema` Annotation that can be used to define JSON Schema definition for the annotated class.