私は、Spring Boot 1.5.7とJackson 2.8を使用した非常に簡単なREST APIプロジェクトを持っています。ジャクソンはデフォルトで不明なフィールドを間違って無視しています
問題
私はジャクソンが文句を言うと、要求で不明なフィールドがある場合は例外を発生します。私はそれを無視するようなことを設定していませんが、それを無視するだけで、理由はわかりません。
要求:
{
"appId":1,
"version":"1.0",
"status":true,
"locked":false,
"field": "it is ignored, but it must not be"
}
Requet方法
@PutMapping
public ResponseEntity<?> updateAppToggle(@RequestBody AppToggleUpdateRequest request) {
AppToggle updatedAppToggle = service.update(request);
return new ResponseEntity<AppToggleResponse>
(AppToggleResponse.fillResponse(updatedAppToggle), HttpStatus.OK);
}
Requestクラス
@Data
public class AppToggleUpdateRequest {
@NotNull
@Getter
private Long appId;
@NotNull
@Getter
private String version;
private Boolean status;
private Boolean locked;
}
マイapplication.prop ertiesには特別なものは含まれておらず、H2のメモリ内のデータベース用のデータソースといくつかのものが含まれています。
私は実際に何が起こっているのか分かりません。どんな助けでも本当に感謝します。
仕様は明示的FAIL_ON_UNKNOWN_PROPERTIES'は 'と言うので、基本的には、それは奇妙ですデフォルトでオンになっています。それらのどれも確かですか:https://howtoprogram.xyz/2017/02/18/ignore-exclude-new-fields-deserializing-jackson/あなたのコードに適用されますか? –
私が言ったように、私のアプリケーションは非常にシンプルです(それは学習目的のためです)、私はすぐにすべてを使用しています。私は[this](https://stackoverflow.com/a/22874949/4319922)のような解決策を試すことができましたが、一言で言えば、私が期待する動作はデフォルトでは設定されていますがそれは私のアプリケーションに含まれていないようです。 – StatelessDev