Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type java.util.ArrayList from Object value (token JsonToken.START_OBJECT); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type java.util.ArrayList from Object value (token JsonToken.START_OBJECT) at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 1]]

在遇到这种问题时,如果只是针对于后端接口的测试,没有前端页面时,我们只需要针对传入后端的JSON数据格式进行改进:

{

// 错误点就是这个名称这里

"List": [

{

"name": "张三",

"age": "18"

},

{

"name": "李四",

"age": "20"

},

{

"name": "沈查",

"age": "23"

}

]

}

改进

[

{

"name": "张三",

"age": "18"

},

{

"name": "李四",

"age": "20"

},

{

"name": "沈查",

"age": "23"

}

]

这是我们在做后端接口设计测试时常遇到的一种情况的解决方式

第二种情况是我们前端传入后端的数据时一个定义好的list譬如:

wx.request({

url: '',

data: {

list: this.data.list

},

method: "POST"

})

类似于以上这种方式进行数据传输时,我们就应该在后端通过定义对象来实现

public class AddListREQ {

// 将我们列表中的对象类型包装为类的属性来进行传递

private ArrayList list;

}

之后在Controller中通过@ResquestBody进行接受

public ResposeEntity addDailyList(@RequestBody AddListREQ addListREQ) {

// 业务逻辑

}

这种方式可以解决我们后端设计时前端传递参数已经固定的情况下

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: