JSON parse error: Cannot deserialize value of type `java.util.ArrayList<com.example.demo1.....

4 篇文章 0 订阅
3 篇文章 0 订阅

Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type java.util.ArrayList<com.example.demo1.entities.JournelDetailREQ> 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.example.demo1.entities.JournelDetailREQ> 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<JournelDetailREQ> list;
}

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

public ResposeEntity addDailyList(@RequestBody AddListREQ addListREQ) {
		// 业务逻辑
}

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值