Ich habe ein ziemlich einfaches REST-API-Projekt mit Spring Boot 1.5.7 und Jackson 2.8.Jackson ignoriert irrtümlich unbekannte Felder standardmäßig
Problem
I Jackson möchte eine Ausnahme beschweren und zu erhöhen, wenn es in der Anfrage ein unbekanntes Feld. Obwohl ich nichts eingerichtet habe, um es zu ignorieren, ignoriert es es einfach und ich weiß nicht warum.
Anfrage:
{
"appId":1,
"version":"1.0",
"status":true,
"locked":false,
"field": "it is ignored, but it must not be"
}
requet Methode
@PutMapping
public ResponseEntity<?> updateAppToggle(@RequestBody AppToggleUpdateRequest request) {
AppToggle updatedAppToggle = service.update(request);
return new ResponseEntity<AppToggleResponse>
(AppToggleResponse.fillResponse(updatedAppToggle), HttpStatus.OK);
}
Anfrage Klasse
@Data
public class AppToggleUpdateRequest {
@NotNull
@Getter
private Long appId;
@NotNull
@Getter
private String version;
private Boolean status;
private Boolean locked;
}
Mein application.prop erties enthält nichts besonderes, nur Datenquellen und ein paar Sachen für die H2 In-Memory-Datenbank.
Ich weiß wirklich nicht, was vor sich geht. Jede Hilfe würde wirklich geschätzt werden.
Im Grunde, das ist komisch, weil die Spezifikation sagt ausdrücklich, dass 'FAIL_ON_UNKNOWN_PROPERTIES' ist standardmäßig aktiviert. Sind Sie sicher, keine von denen: https://howtoprogram.xyz/2017/02/18/ignore-exclude-new-fields-deserializing-jackson/ auf Ihren Code anwenden? –
Wie gesagt, meine Anwendung ist ziemlich einfach (es ist für Lernzwecke) und ich benutze alles aus der Box. Ich könnte versuchen, eine Lösung wie [this] (https://stackoverflow.com/a/22874949/4319922), aber es macht keinen Sinn, einmal, wie Sie sagten, ist das Verhalten, das ich erwarte, standardmäßig eingestellt, obwohl es scheint nicht in meiner Anwendung zu sein. – StatelessDev