Как использовать расширенный Jackson MapSerializer в Hashmap

1

Я пытаюсь расширить com.fasterxml.jackson.databind.ser.std.MapSerializer, чтобы включить некоторые из моих собственных функций, которые будут использоваться в методе serialize().

public class MyMapSerializer extends MapSerializer{
    //have constructors
    //override method
    @Override
     public void serialize(Map<?,?> value, JsonGenerator jgen, SerializerProvider provider){}
}

Затем я добавляю аннотацию к моей карте следующим образом:

@JsonSerialize(using = org.entities.generator.MyMapSerializer.class)
private Map<ObjectA,ObjectB> myObject;

Но когда я добавляю точку останова в MapSerializer, она даже не входит в нее. И я попытался расширить JsonSerializer>, он идет в него. Кто-нибудь знает, как использовать расширенный MapSerializer? Спасибо за помощь

Теги:
jackson
map

1 ответ

0
Лучший ответ

Я бы не рекомендовал попробовать подклассифицировать сериализаторы по умолчанию Jackson: это хрупкий.

Но если вы действительно хотите это сделать, взгляните на MapSerializer: я предполагаю, что его createContextual() заканчивает создание другого настроенного экземпляра. Возможно, вам придется переопределить один из других методов, которые обрабатывали создание таких экземпляров; вам просто нужны те, которые нужно построить instanceof MyMapSerializer а не по умолчанию MapSerializer.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню