收集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); }
在课程中,你要反序列化,例如。 你的A
class。