spring boot 接受ajax数组

最近在用spring boot + vue.js作后台,在做批量删除的时候出现了异常

jackson报的错

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of java.lang.String[] out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String[] out of START_OBJECT token
 at [Source: java.io.PushbackInputStream@72bf7f09; line: 1, column: 1]

转换成fastjson报的错

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: exepct '[', but {, pos 1, json : {"systemIds":["1201678f34e24bf087a33efb88ca1d64 ","0e90bc00e6914c51bd0dfee01c97b55a "]}; nested exception is com.alibaba.fastjson.JSONException: exepct '[', but {, pos 1, json : {"systemIds":["1201678f34e24bf087a33efb88ca1d64 ","0e90bc00e6914c51bd0dfee01c97b55a "]}




好吧,看不懂,果断把spring boot原生的jackjson换成咱们中国的fastjson,好了,这下看懂了。原来是我前台发送的参数不对。json转换需要最外层就是数组的[],我的参数在内层才是数组。




const url = self.HOST + "/system/delete";
self.$axios.post(url,{systemIds:ids}).then((response) => {
    if(response.data.code == '100'){
        self.$message.success('批量删除成功');
    }else{
        self.$message.error(response.data.mesg);
    }
})


把参数换成这样就对了

好吧,看不懂,果断把spring boot原生的jackjson换成咱们中国的fastjson,好了,这下看懂了。原来是我前台发送的参数不对。



const url = self.HOST + "/system/delete";
self.$axios.post(url,ids).then((response) => {
    if(response.data.code == '100'){
        self.$message.success('批量删除成功');
    }else{
        self.$message.error(response.data.mesg);
    }
})

好吧,看不懂,果断把spring boot原生的jackjson换成咱们中国的fastjson,好了,这下看懂了。原来是我前台发送的参数不对。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Spring Boot和Echarts创建饼状图的一种常见方法是通过后台向前端传递数据。 首先,您需要在后台准备数据。可以使用数据库查询或其他数据源来检索所需的数据。将数据格式化为可供Echarts饼状图使用的格式。最常见的格式是一个包含名称和值的对象数组。 接下来,在Spring Boot中创建一个控制器来处理数据请求,并将数据返回给前端。您可以使用@RequestMapping注解指定路径和请求方法。在控制器中,您可以调用相关的服务或数据访问层来检索数据,然后将数据作为响应返回给前端。 在前端,您需要使用Echarts库来创建和呈现饼状图。您可以将数据作为参数传递给Echarts的series.data属性。您可以使用Ajax或其他方法来发送请求,从后台获取数据并将其传递给Echarts。 这是一个简单的示例代码来说明这个过程: 后台的控制器方法: ``` @RestController public class ChartController { @Autowired private DataService dataService; @RequestMapping(value = "/data", method = RequestMethod.GET) public List<Data> getData() { // 调用服务或数据访问层来检索数据 List<Data> dataList = dataService.getData(); return dataList; } } ``` 前端的JavaScript代码: ``` $.ajax({ url: '/data', type: 'GET', dataType: 'json', success: function(data) { var chartData = []; // 将后台传来的数据格式化为Echarts饼状图所需的格式 for (var i = 0; i < data.length; i++) { var item = { name: data[i].name, value: data[i].value }; chartData.push(item); } // 使用Echarts创建饼状图 var chart = echarts.init(document.getElementById('chartContainer')); var option = { series: [{ type: 'pie', data: chartData }] }; chart.setOption(option); } }); ``` 请注意,上述代码仅为示例,具体实现可能会根据您的需求有所不同。您可能需要根据自己的业务逻辑进行适当的调整和增强。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值