【问题标题】:Collecting unknown properties with Jackson与杰克逊一起收集未知财产
【发布时间】:2015-07-01 14:45:50
【问题描述】:

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

【问题讨论】:

    标签: java jackson


    【解决方案1】:

    我不知道有任何内置工具可以做到这一点。你可以自己写@JsonAnySetter

    可用于定义非静态的标记注释, 双参数方法(属性的第一个参数名称,第二个值 set), 用作所有其他情况的“后备”处理程序 从 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 班级。

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 2015-04-19
      • 2012-01-09
      相关资源
      最近更新 更多