Я хочу по-разному обрабатывать преобразование json в объекты на разных @RequestMapping
в моем контроллере.
Я полагаю, что если мы добавим зависимость Джексона в наш проект весенней загрузки, он будет обрабатывать преобразование json в Object, а свойство #spring.jackson.deserialization.fail-on-unknown-properties=true
будет гарантировать, что преобразование завершится неудачно, если в json присутствует какое-то неизвестное свойство (пожалуйста, исправьтеменя, если я ошибаюсь).
Можем ли мы указать Джексону локально, когда происходит сбой неизвестных свойств и когда игнорировать это свойство.
Ниже приведен фрагмент кода для использованияflag.
@GetMapping(value = "sample")
public @ResponseBody UserDTO test(@RequestParam String str, @RequestParam boolean failFast) {
ObjectMapper map = new ObjectMapper();
if( failFast) {
map.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
} else {
map.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
UserDTO userDTO = null;
try {
userDTO = map.readValue(str, UserDTO.class);
} catch (IOException e) {
e.printStackTrace();
}
return userDTO;
}
Мне не нужно обрабатывать его во время выполнения, как я использую @RequestParam.
Есть ли какое-либо свойство, с помощью которого я могу отмечать сопоставления, где проверять неизвестные свойства и гдеигнорировать их.
Редактировать : я ищу, чтобы изменить существующее приложение для обработки неизвестного свойства для сопоставления. Например:
@PostMapping(value = "fail/fast")
public @ResponseBody UserDTO test(@FAIL_ON_UNKNOWN @RequestBody UserDTO userDTO, @RequestParam boolean failFast) {
..///processing...
return userDTO;
}
@PostMapping(value = "fail/safe")
public @ResponseBody UserDTO test( @RequestBody UserDTO userDTO, @RequestParam boolean failFast) {
..///processing...
return userDTO;
}
Если для каждого сопоставления можно добавить какой-либо тип проверки, то мне не нужно изменять все существующие сопоставления для настройки неизвестного свойства, и изменение кода будет минимальным.