2017-03-02 52 views
1

我有一个自定义解串器我如何向模块添加一个列表的Jackson自定义反序列化器?

class MyListDeserialiser extends JsonDeserializer<List<MyObject>>{ 

@Override 
public List<MyObject> deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { 

.... 
    return myListOfObjects; } 

}

然后我需要把它添加到杰克逊映射器模块

我试图

public class MyModule extends SimpleModule { 

public MyModule() { 
    super(new Version(1, 0, 0, "", null, null)); 
    addDeserializer(TypeFactory.defaultInstance().constructCollectionType(List.class, MyObject.class).getClass(), 
      new MyListDeserialiser()); 
} 

但没有奏效。

TypeFactory是正确的方式还是与反序列化器定义的问题?

我不想使用注释,所以这是我唯一知道的其他方法。我不想将这些功能直接添加到对象映射器中,因为我将有很多自定义的反序列化,并且我想将所有代码隐藏在模块中。

在此先感谢

+0

“没有工作”并不真正解释发生了什么。 – Johanneke

回答

0

您需要将您的模块添加到映射器,否则将不被用于(反)序列。

相关问题