将默认值分配给JsonNode类型的jackson字段

时间:2018-01-18 15:06:52

标签: jackson fasterxml

我在Spring中有一个跟随DTO类的JSONNode字段,如下所示

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;

@lombok.Data
class ABC {
    @JsonProperty("info")
    JsonNode info;
}

是否有更简洁的方法为字段分配默认值而不是下面提到的方法,以便访问abcObj.getInfo()。toString()总是给出" {}"如果info为null?我至少有5个这样的字段,我想避免重复这段代码。

public JsonNode getInfo() {
        if (this.info == null) {
            return JsonNodeFactory.instance.objectNode();
        }
        return this.info;
    }

我能想到的另一种方法是在Constants类中定义一个静态方法,该方法总是返回一个空的json节点,并在声明成员数据时使用它来初始化。

@JsonProperty("info")
private JsonNode info = Constants.getEmptyJsonNode();

但是这样,我需要为List,JsonNode等不同类型的字段创建单独的方法。

我也尝试在JsonProperty中使用defaultValue选项,但它似乎并没有提供我正在寻找的功能。

0 个答案:

没有答案