Sto usando il dropwizard per creare l'API REST. Ma non capisco, come posso configurare Jackson per escludere alcune classi dalle funzioni WRAP_ROOT_VALUE/UNWRAP_ROOT_VALUE? In questo momento ho una richiesta POST con il corpo JSON che non include radice nome dell'elemento:Usa l'elemento radice Json solo per alcune classi
{
"identification": "dummyuser",
"password":"dummypass"
}
Questo dovrebbe mappare classe java LoginRequest:
public class LoginRequest {
public String identidication;
public String passwrd;
}
Ho anche le richieste di alcuni tipi che includono radice nome dell'elemento:
{
"user":{
"id":12345,
"name":"John Doe"
}
}
Questo dovrebbe essere mappato:
@JsonRootName("user")
public class User {
...
}
Per ottenere elemento principale di lavoro ho dovuto includere:
environment.getObjectMapper().configure(SerializationFeature.WRAP_ROOT_VALUE, true);
environment.getObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
ma ora vale per tutte le classi. Ciò significa che ogni volta che la richiesta di accesso arriva, il server genera un errore perché si aspetta di vedere il nome dell'elemento radice.
Sei riuscito a risolvere questo? –