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