Używam dropwizard do tworzenia REST API. Ale nie rozumiem, jak mogę skonfigurować Jacksona, aby wykluczyć niektóre klasy z funkcji WRAP_ROOT_VALUE/UNWRAP_ROOT_VALUE? Teraz mam żądania POST z ciałem json, który nie zawiera nazwę elementu głównego:Użyj elementu głównego Json tylko dla niektórych klas
{
"identification": "dummyuser",
"password":"dummypass"
}
ten powinien mapowania do klasy java LoginRequest:
public class LoginRequest {
public String identidication;
public String passwrd;
}
ja również uzyskać żądania niektórych typów, które zawierają korzeń element name:
{
"user":{
"id":12345,
"name":"John Doe"
}
}
ten powinien być odwzorowywane:
@JsonRootName("user")
public class User {
...
}
Aby uzyskać element główny pracy musiałem obejmują:
environment.getObjectMapper().configure(SerializationFeature.WRAP_ROOT_VALUE, true);
environment.getObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
ale teraz ma ona zastosowanie do wszystkich klas. Oznacza to, że gdy tylko pojawi się żądanie logowania, serwer wyświetli błąd, ponieważ oczekuje wyświetlenia nazwy elementu głównego.
Czy byłeś w stanie rozwiązać ten problem? –