Я пытаюсь расширить 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: это хрупкий.
Но если вы действительно хотите это сделать, взгляните на MapSerializer
: я предполагаю, что его createContextual()
заканчивает создание другого настроенного экземпляра. Возможно, вам придется переопределить один из других методов, которые обрабатывали создание таких экземпляров; вам просто нужны те, которые нужно построить instanceof MyMapSerializer
а не по умолчанию MapSerializer
.