我试图将错误的 Json 请求发送到映射到控制器中模型的请求正文。
我想知道如果我们依赖 spring 的自动转换,有没有办法处理错误。
这是我的 Json 请求,我的模型类结构是:
{
"name": "abcd",
"occupation": "student"
"extrafield":"hjhsda"
}
public class User{ string name;string occupation:}
我处理请求的方法是
@PostMapping(value="/test")
public void process2(@RequestBody User user) {
System.out.println("Hello");
}
我知道处理它的一种方法是接受 json 作为字符串并在使用 try 和 catch 的方法中使用解析器。
答案 0 :(得分:0)
您可以在 JsonProcessingException
类中处理 ControllerAdvice
:
@ControllerAdvice
public class MyExceptionHandler {
@ExceptionHandler(JsonProcessingException.class)
public ResponseEntity<Object> handleInvalidJson(JsonProcessingException ex) {
// handle exception
return new ResponseEntity<>("Invalid JSON", HttpStatus.NOT_FOUND);
}
更多here。