package com.fasterxml.jackson.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

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

Note that this does NOT mean that properties included by annotated type are ignored. Given hypothetical types:

@JsonIgnoreType class Credentials { public String password; } class Settings { public int userId; public String name; public Credentials pwd; } 
serialization of Settings would only include properties "userId" and "name" but NOT "pwd", since it is of type annotated with @JsonIgnoreType.

Note: annotation does have boolean 'value' property (which defaults to 'true'), so that it is actually possible to override value using mix-in annotations. Usually value is not specified as it defaults to true meaning annotation should take effect.

/** * Marker annotation that indicates that all properties that have * type annotated with this annotation * are to be ignored during serialization and deserialization. *<p> * Note that this does NOT mean that properties included by annotated * type are ignored. Given hypothetical types: *<pre> * {@code @JsonIgnoreType} * class Credentials { * public String password; * } * * class Settings { * public int userId; * public String name; * public Credentials pwd; * } *</pre> * serialization of {@code Settings} would only include properties "userId" * and "name" but NOT "pwd", since it is of type annotated with {@code @JsonIgnoreType}. *<p> * Note: annotation does have boolean 'value' property (which defaults * to 'true'), so that it is actually possible to override value * using mix-in annotations. Usually value is not specified as it defaults * to {@code true} meaning annotation should take effect. */
@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @JacksonAnnotation public @interface JsonIgnoreType {
Optional argument that defines whether this annotation is active or not. The only use for value 'false' if for overriding purposes (which is not needed often); most likely it is needed for use with "mix-in annotations" ("annotation overrides"). For most cases, however, default value of "true" is just fine and should be omitted.
/** * Optional argument that defines whether this annotation is active * or not. The only use for value 'false' if for overriding purposes * (which is not needed often); most likely it is needed for use * with "mix-in annotations" ("annotation overrides"). * For most cases, however, default value of "true" is just fine * and should be omitted. */
boolean value() default true; }