@Target(value={ANNOTATION_TYPE,METHOD,CONSTRUCTOR}) @Retention(value=RUNTIME) public @interface JsonCreator
NOTE: when annotating creator methods (constructors, factory methods), method must either be:
JsonProperty
annotation for the argument: if so, this is so-called "delegate creator",
in which case Jackson first binds JSON into type of the argument, and
then calls creator
JsonProperty
or JacksonInject
, to indicate name
of property to bind to
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.
NOTE: As of Jackson 2.6, use of JsonProperty.required()
is supported
for Creator methods (but not necessarily for regular setters or fields!).
Modifier and Type | Optional Element and Description |
---|---|
JsonCreator.Mode |
mode
Property that is used to indicate how argument(s) is/are bound for creator,
in cases there may be multiple alternatives.
|
public abstract JsonCreator.Mode mode
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.
Copyright © 2014-2015 FasterXML. All Rights Reserved.