2014-12-13 2 views
4

Моего класса выглядит следующим образом:Сохранение UnknownFields на карту при десериализации JSON, используя Джексон

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); 
} 
+0

Благодарим ecbrodie за форматирование и исправление орфографии. В следующий раз, я обеспечу это – Ysak

ответ

4

Вы можете аннотировать метод в вашем домене-классе с @JsonAnySetter (@JsonAnyGetter) и обрабатывать его. Хороший пример: http://www.jasonwhaley.com/handling-top-level-metadata-with-jackson/. Пусть ваш DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES = false.

+0

Спасибо, ребята, это то, что я искал. Позвольте мне попробовать ... – Ysak

+0

отлично ... это сработало ... спасибо, ребята – Ysak

Смежные вопросы