2017-03-02 4 views
1

Ich habe einen benutzerdefinierten DeserializerWie füge ich einen benutzerdefinierten Jackson Deserializer einer Liste zu einem Modul hinzu?

class MyListDeserialiser extends JsonDeserializer<List<MyObject>>{ 

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

.... 
    return myListOfObjects; } 

}

dann muß ich diese

ich zu einer Jackson-Mapper-Modul

versuchte
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()); 
} 

hinzufügen, aber das hat nicht funktioniert.

Ist TypeFactory der richtige Weg oder ist das Problem mit der Deserialiser-Definition?

Ich möchte keine Anmerkungen verwenden, also ist dies die einzige andere Methode, die ich kenne. Ich möchte die Funktionalität nicht direkt zum Objekt-Mapper hinzufügen, da ich viele benutzerdefinierte Deserialisierungen haben werde und ich möchte den ganzen Code in einem Modul versteckt halten.

Vielen Dank im Voraus

+0

"Das hat nicht funktioniert" erklärt nicht wirklich, was passiert ist. – Johanneke

Antwort

0

Sie benötigen Modul an einen Mapper hinzuzufügen, sonst wird es nicht für (de) Serialisierung verwendet werden.

Verwandte Themen