Jackson Databind - 获取未在pojo中指定的属性

时间:2015-02-12 12:23:25

标签: java jackson

我试图找出如何将json绑定到POJO

根据各种条件,json有时会包含其他字段。基本上说 - json的某些部分将始终包含相同的属性,

例如:姓名和年龄。但有时我会得到shoeSize和/或eyeColor。我无法列出可以传递给我的所有可能的属性,因为其中一些属性是由用户定义的。

是否有可能实现这样的目标?

class MyClass 
{
    public String name;
    public Integer age;
    public Map<String, String> additionalArguments;
    public MyClass(...) {...}
}

1 个答案:

答案 0 :(得分:2)

在完成文档后(再次),我找到了一个名为JsonAnySetter的注释,并处理了还原注释JsonAnyGetter

class MyClass 
{
    public String name;
    public Integer age;
    public Map<String, String> additionalArguments = new HashMap<>();
    public MyClass(...) {...}

    @JsonAnyGetter
    public Map<String,Object> getAdditionalProperties() {
       return additionalProperties;
    }

    @JsonAnySetter
    public void putAdditionalProperty(String name, Object value) {
        additionalProperties.put(name, value);
    }
}