Вот класс-обертка, который я пытаюсь serailize
public class Wrapper {
@JsonSerialize(contentUsing = ItemRowSerializer.class)
private Map<String, ItemRow> foo;
public Wrapper(Map<String, ItemRow> fooz) {
foo = new HashMap<>(fooz);
}
public Map<String, ItemRow> getFoo() {
return foo;
}
public void setFoo(Map<String, ItemRow> foo) {
this.foo = foo;
}
}
Вот как я его проверяю
Wrapper w = new Wrapper(map);
final String jsonResult = mapper.writeValueAsString(w);
System.out.println(jsonResult);
Я вижу, что сериализатор применяется, однако у меня есть foo
как корневой узел, а это не то, что мне нужно.
, поэтому я переместил аннотацию из поля в геттер
@JsonSerialize(contentUsing = ItemRowSerializer.class)
public Map<String, ItemRow> getFoo(){
return foo;
}
Теперь я вызываю геттер при записи в маппер
Wrapper w = new Wrapper(map);
final String jsonResult = mapper.writeValueAsString(w.getFoo());
System.out.println(jsonResult);
Я больше не вижу элемента foo
, но сериализатор также не применяется.