Annotation Interface JsonIgnoreProperties


@Target({ANNOTATION_TYPE,TYPE,METHOD,CONSTRUCTOR,FIELD}) @Retention(RUNTIME) 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).

Example:

 // to prevent specified fields from being serialized or deserialized
 // (i.e. not include in JSON output; or being set even if they were included)
 @JsonIgnoreProperties({ "internalId", "secretKey" })
 // To ignore any unknown properties in JSON input without exception:
 @JsonIgnoreProperties(ignoreUnknown=true)

Annotation can be applied both to classes and to properties. If used for both, actual set will be union of all ignorals: that is, you can only add properties to ignore, not remove or override. So you can not remove properties to ignore using per-property annotation.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Helper class used to contain information from a single JsonIgnoreProperties annotation, as well as to provide possible overrides from non-annotation sources.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Property that can be enabled to allow "getters" to be used (that is, prevent ignoral of getters for properties listed in value()).
    boolean
    Property that can be enabled to allow "setters" to be used (that is, prevent ignoral of setters for properties listed in value()).
    boolean
    Property that defines whether it is ok to just ignore any unrecognized properties during deserialization.
    Names of properties to ignore.
  • Element Details

    • value

      String[] value
      Names of properties to ignore.
      Default:
      {}
    • ignoreUnknown

      boolean ignoreUnknown
      Property that defines whether it is ok to just ignore any unrecognized properties during deserialization. If true, all properties that are unrecognized -- that is, there are no setters or creators that accept them -- are ignored without warnings (although handlers for unknown properties, if any, will still be called) without exception.

      Does not have any effect on serialization.

      Returns:
      True if any and all unknown properties are to be ignored without exceptions (or other special handling); false otherwise.
      Default:
      false
    • allowGetters

      boolean allowGetters
      Property that can be enabled to allow "getters" to be used (that is, prevent ignoral of getters for properties listed in value()). This is commonly set to support defining "read-only" properties; ones for which there is a getter, but no matching setter: in this case, properties should be ignored for deserialization but NOT serialization. Another way to think about this setting is that setting it to `true` will "disable" ignoring of getters.

      Default value is `false`, which means that getters with matching names will be ignored.

      Returns:
      True if getters should be allowed (i.e. NOT ignored); false if getters are to be ignored
      Since:
      2.6
      Default:
      false
    • allowSetters

      boolean allowSetters
      Property that can be enabled to allow "setters" to be used (that is, prevent ignoral of setters for properties listed in value()). This could be used to specify "write-only" properties; ones that should not be serialized out, but that may be provided in for deserialization. Another way to think about this setting is that setting it to `true` will "disable" ignoring of setters.

      Default value is `false`, which means that setters with matching names will be ignored.

      Returns:
      True if setters should be allowed (i.e. NOT ignored); false if setters are to be ignored
      Since:
      2.6
      Default:
      false