收集jackson的未知属性

我正在使用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未知并被忽略了吗?

我不知道有任何内置工具可以做到这一点。 你可以用@JsonAnySetter自己@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); } 

在课程中,你要反序列化,例如。 你的Aclass。