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

how to use @JsonProperty in this case - jackson API with lombok

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

我在下面 json 片段。

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

所以,为了用 jackson API 解析上面的 json,我在下面写了 java pojo class.

package com.jl.models;

import lombok.Data;

@Data
public class Results
{
    private int uniqueCount;

}

后来,我在下面解析了类似的 json 片段。

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

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

我可以轻松创建另一个 java pojo class 具有 count 成员变量,但我必须创建所有父 java classes 具有Results class 的实例。

那么,有什么方法可以自定义 Results class 具有 lombok 行为来解析两个 json 而不会相互影响?

提前感谢您的帮助。

您可以使用 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;
        }
    }
}