“JSON parse error: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token;

本来是前端要传多个相同属性的对象,比如:
{
“deliveryDTO”: [{
“nodeName”: “签到”,
“isDefined”: 2,
“isNeed”: 0,
“isFinish”: 1,
“childNode”: null
},
{
“nodeName”: “交房必备”,
“isDefined”: 0,
“isNeed”: null,
“isFinish”: 1,
“childNode”: [{
“nodeName”: “我要报修”,
“isDefined”: 2,
“isNeed”: 0,
“isFinish”: 1
}]
}
]
}

后端打算用@RequestBody List deleveryDTO接收,
但是报错:“JSON parse error: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token\n at [Source: java.io.PushbackInputStream@7fb3b2a4; line: 1, column: 1]”,

看了之前同事写的代码,发现,类中的成员变量是list集合的话json可以自定解析,但是用LIst这种方式的话不能解析前端传的list数据,所以要多定义一个类,这个类专门接收参数,成员属性是list类型的.然后改成了这样:

@Data
public class DeliveryBatchDTO {
    private List<DeliveryDTO> deliveryDTO;
}

视图层的接收参数变成:

**@RequestBody DeliveryBatchDTO deliveryDTO**

然后就可以接收前端传的list集合了.吃一堑长一智,对于我这样的小白,还是要多多学习.

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值