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

Jackson Databind - get properties not specified in pojo

我正在尝试弄清楚如何将 json 绑定到 POJO

When json 有时可以包含其他字段,具体取决于各种条件。基本上来说 - json 的某些部分将始终包含相同的属性,

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

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

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

(再次)阅读文档后,我发现了名为 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);
    }
}