我收到以下错误消息
WARN 13712 --- [nio-8080-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by handler execution: org.springframework.http.converter.HttpMessageNotReadableException:
JSON parse error: Unexpected character (',' (code 44)): expected a value; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character (',' (code 44)): expected a value at [Source: java.io.PushbackInputStream@1db33478; line: 2, column: 16]
我正在使用像这样的spring框架。
@GetMapping("/access")
public HashMap<String, Object> getAccess() {
HashMap<String, Object> response = new HashMap<String, Object>();
ArrayList<Access> list = new ArrayList<Access>();
BdConector bd = BdConector.getInstance();
list = bd.getAllAccess();
if (list != null) {
response.put("result", "200");
} else {
response.put("result", "500");
}
response.put("items", list);
return response;
}
解析器异常发生时,我想记录json正文内容。
尝试这样的事情...
@ExceptionHandler(com.fasterxml.jackson.core.JsonParseException.class)
public ResponseEntity<Object> handleException(com.fasterxml.jackson.core.JsonParseException ex) {
LOG.error("Error parse json " + ex.getMessage());
...
}
不太清楚如何提取无效json的原始字符串,也许是在异常的“ getMessage()”中,如图所示。无论如何,您可以调试“ ex”文件并查找如何正确获取它。