Ich verwende DropWizard, um REST-API zu erstellen. Aber ich verstehe nicht, wie kann ich Jackson konfigurieren, um einige Klassen von WRAP_ROOT_VALUE/UNWRAP_ROOT_VALUE Funktionen auszuschließen? Im Moment bekomme ich eine Post-Anforderung mit json Körper, der nicht Name Wurzelelement enthält:Verwenden Sie JSON-Root-Element nur für einige Klassen
{
"identification": "dummyuser",
"password":"dummypass"
}
Diese auf Java-Klasse LoginRequest Karte sollte:
public class LoginRequest {
public String identidication;
public String passwrd;
}
ich auch bekommen Anfragen für einige Typen, die einschließen Wurzelelement Name:
{
"user":{
"id":12345,
"name":"John Doe"
}
}
Dies sollte abgebildet werden:
Um Wurzelelement zu erhalten arbeiten I schließen musste:
environment.getObjectMapper().configure(SerializationFeature.WRAP_ROOT_VALUE, true);
environment.getObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
aber jetzt gilt es für alle Klassen. Dies bedeutet, dass der Server beim Auftreten einer Anmeldeanforderung einen Fehler auslöst, weil er den Namen des Stammelements erwartet.
Konnten Sie das lösen? –