记录日常异常:

异常提示: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:{},
    	}
    }
  }
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐