Ich habe eine Standard-JSON-Array zu einem benutzerdefinierten List-Typ zuordnen (intraf nicht java.util.List auf alle außer javaslang.collection.List). Zur Komplexität hinzufügen, haben wir keine statischen Beans, in denen wir den Listentyp als javaslang-Typ definieren könnten, aber wir müssen auf generische Map abbilden, aber die Listeninstanz sollte vom Typ javaslang.collection.List sein.Jackson benutzerdefinierte Liste Instanztyp
Ich habe versucht, neue benutzerdefinierte Deserializer zu erstellen, aber da wir versuchen, in generische Map zu desertieren, berührt es diesen benutzerdefinierten Deserializer überhaupt nicht.
Zum Beispiel, hier ist der Testfall, den wir durchlaufen wollen.
@Test
@DisplayName("list instance is javaslang list")
void listAsJsList() throws Exception {
Map<String, Object> object = objectMapper.readValue(
"{\"records\": [{\"id\": \"123\"}, {\"id\": \"124\"} ] }", HashMap.class);
assertThat(object.get("records")).isInstanceOf(javaslang.collection.List.class);
}
Jede Hilfe wird geschätzt.