情景再现:
接口
@PostMapping("/aa")
public String setDoubtList(@RequestBody List<user> userList){//接收一个list<user>,return userService.setUserList(userlist);}
测试接口时传入body内容
{"user":[{"name":"aa","sex":"男","age":"14"},{"name":"ba","sex":"女","age":"24"},{"name":"za","sex":"男","age":"13"},]
}
报错
JSON parse error: Cannot deserialize value of type `java.util.ArrayList<com.*****>` from Object value (token `JsonToken.START_OBJECT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<com.****>` from Object value (token `JsonToken.START_OBJECT`)
JSON parse error通常表示JSON格式的数据无法被正确解析。这可能是由于以下原因之一:
- JSON格式不正确:如果JSON数据格式不正确,例如缺少引号、括号或逗号等,那么解析器就无法正确解析数据。
- JSON数据类型不正确:如果JSON数据类型不正确,例如尝试将一个字符串转换为数字或布尔值,那么解析器就无法正确解析数据。
- JSON数据嵌套不正确:如果JSON数据嵌套不正确,例如尝试将一个对象放在另一个对象的属性值中,那么解析器就无法正确解析数据。
- JSON数据太大:如果JSON数据太大,超出了解析器的最大限制,那么解析器就无法正确解析数据。
报错原因
- json和映射的user中的数据类型不一致
如:age可能是int型,json就要这样写 "age":13 没有引号了
double类型也是这样,要注意不能用科学计数的方式写 - 传入参数的json格式不对
正确的,泛型设置好,会自己放进去,不用在json中体现[{"name":"aa","sex":"男","age":"14"},{"name":"ba","sex":"女","age":"24"},{"name":"za","sex":"男","age":"13"}, ]