在这种情况下如何使用@JsonProperty - 与lombok的jackson API

时间:2017-04-06 12:39:57

标签: java json jackson lombok

我知道如何在jackson API中使用@JsonProperty,但以下情况不同。

我在json片段之下。

{"results":[{"uniqueCount":395}

因此,要使用jackson API解析上面的json,我在下面写了java pojo类。

package com.jl.models;

import lombok.Data;

@Data
public class Results
{
    private int uniqueCount;

}

后来,我得解析类似的json片段。

{"results":[{"count":60}

现在,问题是我无法用Results类解析这个json,因为它需要一个字符串uniqueCount

我可以轻松地创建另一个具有count成员变量的java pojo类,但是我要创建所有具有Results类实例的父类java。

那么,有没有什么方法可以自定义Results具有lombok行为的类来解析json而不会影响彼此?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

你可以使用Jackson的@JsonAnySetter注释将所有未知键引导到一个方法,你可以自己完成任务:

@Data
public class Results
{
    private int uniqueCount;

    // all unknown properties will go here
    @JsonAnySetter
    public void setUnknownProperty(String key, Object value) {
        if (key.equals("count")) {
            uniqueCount = (Integer)value;
        }
    }
}