我知道如何在 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 类。
那么,有什么方法可以自定义具有 lombok
行为的 Results
类来解析两个 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;
}
}
}
关于java - 在这种情况下如何使用@JsonProperty - jackson API with lombok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255501/