Джексон установил подсказку для свойств класса при преобразовании из карты в POJO

Здравствуйте, мне нужно преобразовать карту в POJO. Я знаю, что могу использовать этот код:

MyObject obj = (new ObjectMapper()).convertValue(myMap, MyObject.class);

Но я столкнулся с проблемой: ключи карты могут содержать ключевые слова java, например, карта может быть:

Map<String, String> map = new Map<String, String>();
map.put("class", "...");
map.put("interface", "...");
map.put("value", "Some value");

Итак, после конвертации у меня будет инициализированное поле значений, но я не знаю, как присвоить значения ключам «интерфейс» и «класс».

public class MyObject {
   public String value;
   /*
     I can not define fields named "class" and "inteface" but i need values with this keys
   */
}

Аннотации @JsonProperty для этого не работают (и я думаю, что они не должны работать для преобразования не в JSON).

Любые идеи?


person Sergey Pekar    schedule 27.01.2015    source источник


Ответы (1)


Я не уверен, почему вы говорите, что @JsonProperty не работает, следующее свяжет значения карты с POJO

public class MyObject {

    @JsonProperty("class")
    private String clazz;
    @JsonProperty("interface")
    private String interfejz;
    @JsonProperty("value")
    private String value;

// setters getters
}
person Master Slave    schedule 27.01.2015