在做前后端数据交互的时候遇到了这个问题,在网上查了很多,没有太大帮助,只好自己静下心来,慢慢思考,并对照了请求的数据信息,终于解决了.
不作过多的复述,直接上代码:
前端如下:
pay: function() {
var token = wx.getStorageSync("token");
var that = this;
wx.request({
url: 'http://localhost:8080/order',
header: {
token: token
},
data: {
products: [{
product_id: 1,
count: 2
},
{
product_id: 2,
count: 3
}
]
},
method: 'POST',
success: function(res) {
console.log(res.data);
}
})
}
后端`controller`代码:
@PostMapping("/order")
public JSONResult placeOrder(@RequestBody List<Map<String, Integer>> oProducts) {
Integer uid = tokenService.getCurrentUid();
return orderService.place(uid, oProducts);
}
在线JSON格式化工具: https://www.bejson.com/>
格式化校验为正确的JSON格式,但是还是报如下错误:
org.springframework.http.converter.HttpMessageNotReadableException: Invalid JSON input: Cannot deserialize instance of `java.util.ArrayList<java.util.Map<java.lang.String,java.lang.Integer>>`