com.fasterxml.jackson.annotation
Annotation Type JsonCreator


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

NOTE: when annotating creator methods (constructors, factory methods), method must either be:

Also note that all JsonProperty annotations must specify actual name (NOT empty String for "default") unless you use one of extension modules that can detect parameter name; this because default JDK versions before 8 have not been able to store and/or retrieve parameter names from bytecode. But with JDK 8 (or using helper libraries such as Paranamer, or other JVM languages like Scala or Kotlin), specifying name is optional.

One common use case is to use a delegating Creator to construct instances from scalar values (like java.lang.String) during deserialization, and serialize values using JsonValue.

NOTE: As of Jackson 2.6, use of JsonProperty.required() is supported for Creator methods (but not necessarily for regular setters or fields!).

See Also:
JsonCreator

Optional Element Summary
 JsonCreator.Mode mode
          Property that is used to indicate how argument(s) is/are bound for creator, in cases there may be multiple alternatives.
 

mode

public abstract JsonCreator.Mode mode
Property that is used to indicate how argument(s) is/are bound for creator, in cases there may be multiple alternatives. Currently the one case is that of a single-argument creator method, for which both so-called "delegating" and "property-based" bindings are possible: since delegating mode can not be used for multi-argument creators, the only choice there is "property-based" mode. Check JsonCreator.Mode for more complete explanation of possible choices.

Default value of JsonCreator.Mode.DEFAULT means that caller is to use standard heuristics for choosing mode to use.

Since:
2.5
Default:
com.fasterxml.jackson.annotation.JsonCreator.Mode.DEFAULT


Copyright © 2008–2016 FasterXML. All rights reserved.