com.xxx` from Array value (token `JsonToken. START_ARRAY

记录日常异常:

异常提示:com.xxxfrom Array value (tokenJsonToken. START_ARRAY )

vue中views/index.vue页面

定义json对象,错误示范:
如果不小心,定义consumer变量为数组

export default {
  data() {//返回参数
    return {
      consumer:[],//添加章节
    	}
    }
  }

前端views/index.vue页面,导入方法

addConsumer(){
      chapter.addConsumer(this.consumer).then(
        response=>{  
        //提交成功,提示信息
        this.$message({
          message: '保存,成功!',
            type: 'success'
            });
          //然后,刷新章节,列表页面
          // this.findAllConsumer();
        }
      )
    },

导入方法文件,api/index.js中定义方法

import request from '@/utils/request'
export default{
	//添加章节
	 addConsumer(consumer) {
	        return request({
	            url: `/eduservice/edu-chapter/addConsumer`,
	            method: 'post',
	            data: consumer//以json方式添加数据
	          })
	    }
}

后端Controller

@RestController
@RequestMapping("/eduservice/edu-consumerr")
@CrossOrigin
public class EduConsumerController {
    @Resource
    private EduConsumerService eduConsumerService;
    //添加
    @PostMapping("addConsumer")
    public R addConsumer(@RequestBody EduConsumer consumer){
        eduConsumerService.save(consumer);
        return R.success();
    }

异常提示:

chapter数据被发送给后端时,就会产生以下异常
HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type com.xx from Array value (token JsonToken.START_ARRAY); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type com.xxx from Array value (token JsonToken.START_ARRAY)
at [Source: (PushbackInputStream); line: 1, column: 1]]

解决:
后端传递数据,必须把变量,定义为json对象类型不是数组类型

export default {
  data() {//返回参数
    return {
		//添加章节  把调用变量的数组改为对象,以便数据提交给后端时,不发生Json解析错误,[]==>{}    
      consumer:{},
    	}
    }
  }
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值