Annotation Type JsonSubTypes


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

    Note that just annotating a property or base type with this annotation does NOT enable polymorphic type handling: in addition, JsonTypeInfo or equivalent (such as enabling of so-called "default typing") annotation is needed, and only in such case is subtype information used.

    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      JsonSubTypes.Type[] value
      Subtypes of the annotated type (annotated class, or property value type associated with the annotated method).
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      boolean failOnRepeatedNames
      Subtypes of the annotated type may have logical type name and names properties.
    • Element Detail

      • value

        JsonSubTypes.Type[] value
        Subtypes of the annotated type (annotated class, or property value type associated with the annotated method). These will be checked recursively so that types can be defined by only including direct subtypes.
      • failOnRepeatedNames

        boolean failOnRepeatedNames
        Subtypes of the annotated type may have logical type name and names properties. When set to true, logical type name and names are going to be checked for repeated values. Repeated values are considered a definition violation during that check.
        Since:
        2.14
        Default:
        false