Załóżmy serializacji do JSON zawiera nazwę klasy rzeczywistego obiektu, za pomocą tej adnotacji na klasę:Czy jackson może określić typ obiektu root, aby deserializować do, kiedy json zawiera właściwość type?
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@type")
class MyClass {
String foo;
}
Więc JSON jest na przykład:
{"@type": "com.example.MyClass", "foo": "bar"}
Może to być rozszeregować bez określenia rodzaju ? I nie mam na myśli nawet supertypu. Po prostu coś takiego:
objectMapper.readValue(value, Object.class);
co nie działa, przywraca mapę.
O tak, myślę, że to działa. Zastanawiam się, czy nie było bardziej wbudowanego sposobu, ale myślę, że to nie miałoby sensu, ponieważ Jackson nie mógł wiedzieć, jak skonfigurowałem JsonTypeInfo, bez znajomości klasy. Wielkie dzięki. –