Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSON jackson creator:默认值和很好的值_Java_Json_Jackson - Fatal编程技术网

Java JSON jackson creator:默认值和很好的值

Java JSON jackson creator:默认值和很好的值,java,json,jackson,Java,Json,Jackson,我必须构建一个包含必填字段、默认字段(如果未设置值)和可选字段(非必填)的json。此类用于反序列化和序列化。如果未设置某些非强制字段或未设置强制值,但应为默认值,则最终json的外观应有所不同 @JsonSnakeCase @JsonIgnoreProperties(ignoreUnknown=true) public class TryoutJson { @JsonCreator public TryoutJson( @NotBlank @J

我必须构建一个包含必填字段、默认字段(如果未设置值)和可选字段(非必填)的json。此类用于反序列化和序列化。如果未设置某些非强制字段或未设置强制值,但应为默认值,则最终json的外观应有所不同

@JsonSnakeCase
@JsonIgnoreProperties(ignoreUnknown=true)
public class TryoutJson {

    @JsonCreator
    public TryoutJson(
        @NotBlank
        @JsonProperty("mandatory")
        final String mandatory,
        @...WHAT HERE TO set to default?
        @JsonProperty("valueDefaultedTo5IfNotSet")
        final String valueDefaultedTo5IfNotSet,
        @... What here to set just if value is given?
        @JsonProperty("thisFieldIsNotMAndatory")
        final String thisFieldIsNotMAndatory,
    ) throws IllegalArgumentException
    {
     //....
    }

}
例如,应在使用的构造函数中创建此json字符串:

{"mandatory":"mandatoryValue","valueDefaultedTo5IfNotSet":"5"} is the same like {"mandatory":"mandatoryValue"}

所有这些设置是否可能只有一个构造函数?我不想为每个可能的变体构建几个构造函数。 如果重要,则使用此导入:

import org.hibernate.validator.constraints.NotBlank;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

在创建对象时,您不能将强制属性设置为默认值吗?我想反序列化上面的json,但json有几种不同的变体。您有两种解决方法:1。使用备用构造函数;2.使用生成器
import org.hibernate.validator.constraints.NotBlank;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;