使用Jackson反序列化Json时将UnknownFields保存到地图中

时间:2014-12-13 15:51:48

标签: java json spring spring-mvc jackson

我的班级看起来像:

Class A{
    private String amount;

    @JsonIgnore
    private Map<String,String> unknownFields = new HashMap<>();

}

我的ObjectMapper已配置DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES = false

Json input:
{
   "amount": 5000,
   "note" : "Amount is 5000"
}

在这种情况下,我需要将注释放在unknownFields地图中:

我正在寻找一些注释,如

@OnUnknownProperties
public void OnUnknownProperties(String name, String value){
    unknownFields.put(name,value);
}

1 个答案:

答案 0 :(得分:4)

您可以使用@JsonAnySetter(@JsonAnyGetter)在您的Domain-Class中注释一个Method并处理它。这里有一个很好的例子: http://www.jasonwhaley.com/handling-top-level-metadata-with-jackson/。让你的DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES = false。