我正在尝试扩展
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
。
关于java - 如何在Hashmap中使用扩展的Jackson MapSerializer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23249909/