我正在使用Jackson从JSON创建Java对象。假设我有一个像这样的JSON字符串:
{"a":"a", "b":"b", "c":"c"}
这样的一个pojo:
@JsonIgnoreProperties(ignoreUnknown = true)
public class A {
private String a;
private String b;
// ...
}
所以c显然是一个未知的属性 - 它将被遗漏。我想知道,有什么方法可以记录c未知并被忽略了吗?
答案 0 :(得分:15)
我不知道有任何内置工具可以做到这一点。您可以使用@JsonAnySetter
可用于定义非静态的标记注释, 双参数方法(属性的第一个参数名称,第二个值为 设置),用作"后备"否则所有的处理程序 从JSON内容中找到无法识别的属性。
像
一样使用它@JsonAnySetter
public void ignored(String name, Object value) {
// can ignore the 'value' if you only care for the name (though you still need the second parameter)
System.out.println(name + " : " + value);
}
在您要反序列化的课程中,例如。你的A
课程。