Annotation Type Json


Annotation for specifying various JSON options for the JSON serializers and parsers.

Can be used in the following locations:

  • Marshalled classes/methods/fields.
  • @Rest-annotated classes and @RestOp-annotated methods when an on() value is specified.

Can be used for the following:

  • Wrap bean instances inside wrapper object (e.g. {'wrapperAttr':bean}).
See Also:
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Dynamically apply this annotation to the specified classes/methods/fields.
    Class<?>[]
    Dynamically apply this annotation to the specified classes.
    Wraps beans in a JSON object with the specified attribute name.
  • Element Details

    • on

      Dynamically apply this annotation to the specified classes/methods/fields.

      Used in conjunction with BeanContext.Builder.applyAnnotations(Class...) to dynamically apply an annotation to an existing class/method/field. It is ignored when the annotation is applied directly to classes/methods/fields.

      Valid patterns:
      • Classes:
        • Fully qualified:
          • "com.foo.MyClass"
        • Fully qualified inner class:
          • "com.foo.MyClass$Inner1$Inner2"
        • Simple:
          • "MyClass"
        • Simple inner:
          • "MyClass$Inner1$Inner2"
          • "Inner1$Inner2"
          • "Inner2"
      • Methods:
        • Fully qualified with args:
          • "com.foo.MyClass.myMethod(String,int)"
          • "com.foo.MyClass.myMethod(java.lang.String,int)"
          • "com.foo.MyClass.myMethod()"
        • Fully qualified:
          • "com.foo.MyClass.myMethod"
        • Simple with args:
          • "MyClass.myMethod(String,int)"
          • "MyClass.myMethod(java.lang.String,int)"
          • "MyClass.myMethod()"
        • Simple:
          • "MyClass.myMethod"
        • Simple inner class:
          • "MyClass$Inner1$Inner2.myMethod"
          • "Inner1$Inner2.myMethod"
          • "Inner2.myMethod"
      • Fields:
        • Fully qualified:
          • "com.foo.MyClass.myField"
        • Simple:
          • "MyClass.myField"
        • Simple inner class:
          • "MyClass$Inner1$Inner2.myField"
          • "Inner1$Inner2.myField"
          • "Inner2.myField"
      • A comma-delimited list of anything on this list.
      See Also:
      Returns:
      The annotation value.
      Default:
      {}
    • onClass

      Dynamically apply this annotation to the specified classes.

      Identical to on() except allows you to specify class objects instead of a strings.

      See Also:
      Returns:
      The annotation value.
      Default:
      {}
    • wrapperAttr

      Wraps beans in a JSON object with the specified attribute name.

      Applies only to ElementType.TYPE.

      This annotation can be applied to beans as well as other objects serialized to other types (e.g. strings).

      Example:

      @Json(wrapperAttr="myWrapper") public class MyBean { public int f1 = 123; }

      Without the @Json annotations, serializing this bean as JSON would have produced the following...

      { f1: 123 }

      With the annotations, serializing this bean as JSON produces the following...

      { myWrapper: { f1: 123 } }

      Returns:
      The annotation value.
      Default:
      ""