Jackson的坑

原创
2021/11/30 20:00
阅读数 172

如果你的项目中用的是默认的Jackson解析JSON的话

后端代码:

public ResponseEntity<Object> getTradeConfig(@RequestBody AccountTradeReqDTO accountTradeReqDTO) {

}

前端代码:

{"tradeFlag": 1}

此时会报错:

2021-11-30 16:36:34.087 [http-nio-8080-exec-5] ERROR [com.xxx.xxx.xx.web.admin.exception.handler.GlobalExceptionHandler.handleException: 48] - org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
 at [Source: (PushbackInputStream); line: 1, column: 1]

此时有两种解决方案:

第一种方案

修改前端代码,要把JSON对象转换为JSON字符串:

"{\"tradeFlag\": 1}"

后端代码不变

public ResponseEntity<Object> getTradeConfig(@RequestBody AccountTradeReqDTO accountTradeReqDTO) {

}

 

第二种方案

前端代码不变

{"tradeFlag": 1}

后端代码中去掉`@RequestBody`这个注解

public ResponseEntity<Object> getTradeConfig(AccountTradeReqDTO accountTradeReqDTO) {

}
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部