我知道如何在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而不会影响彼此?
提前感谢您的帮助。
答案 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;
}
}
}