处理 Json 解析异常

时间:2021-04-10 05:53:14

标签: java json spring-boot

我试图将错误的 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 的方法中使用解析器。

1 个答案:

答案 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