Spring автоматически десериализует JSON в объект MyRequest.
Код: Выделить всё
@RestController
public class MyController {
@PostMapping(path = "/operation")
public ResponseEntity operation(@Valid @RequestBody MyRequest request) {
...
}
}
public class MyRequest {
private MyEnum1 field1;
private MyEnum2 field2;
private MyEnum3 field3;
private MyEnum4 field4;
private MyEnum5 field5;
private MyEnum6 field6;
... // really a lot of various enum fields!
}
public enum MyEnum1 {
VAL1, VAL2, VAL3;
}
Код: Выделить всё
{
"field1": "BLAHBLAH",
...
}
Я знаю, что могу написать собственные десериализаторы JSON для каждого перечисления, но решение будет громоздким и неудобным. -elegant.
Есть ли способ глобально установить для десериализатора перечисления JSON «строгий режим», чтобы, если значение недопустимо, выдавалось исключение? Если да, то как и где?
РЕДАКТИРОВАТЬ:
Как правильно указано @x4rf41 в его (принятом) ответе , строгая оценка перечислений действительно включена по умолчанию. Я не заметил, что где-то в нашем коде она отключена:
Код: Выделить всё
featuresToEnable(new Object[]{DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL})
Подробнее здесь: https://stackoverflow.com/questions/656 ... ntly-conve