在Jackson中处理布尔值和字符串吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Jackson中处理布尔值和字符串吗?相关的知识,希望对你有一定的参考价值。
我有一个JSON属性,可以是其中之一
{ "observed": true }
{ "observed": false }
{ "observed": "" }
我想映射它,以便在Java中它将是"true"
,"false"
或""
中的一个
@JsonProperty("observed")
private String observedValue;
然后我就做个吸气剂,给我一个
public Optional<Boolean> getObservedOpt() {
if ("".equals(observedValue)) {
return Optional.empty();
} else {
return Optional.of(Boolean.parseBoolean(observedValue));
}
}
但是,我不确定如何将true
和false
转换为字符串。或者,也许有一种更优雅的方法,无需进行字符串比较。
答案
我建议使用此功能ACCEPT_EMPTY_STRING_AS_NULL_OBJECT配置对象映射器,因此,如果为空字符串,它将分配给null
ObjectMapper mapper = new ObjectMapper()
.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
并且您可以愉快地将此字段声明为Boolean
类型,请注意,如果为空字符串,则该字段值为null
@JsonProperty("observed")
private Boolean observedValue;
以上是关于在Jackson中处理布尔值和字符串吗?的主要内容,如果未能解决你的问题,请参考以下文章