前段时间写的项目中写到了前端页面传json数组到后台的一个功能,一开始本来是好的,后来过了段时间别的地方也要写这个功能,就照着之前写的,没想到这次报了400的错误。

前端用的vue+elementui,后台是springboot

之前我的后台是这样接收前台传过来的数组的

public R<Integer> saveMoneyHistoryList(@RequestParam(value = "moneyHistoryList[]") String[] moneyHistoryList ,String orgId) {
		Integer add= channelService.saveMoneyHistoryList(moneyHistoryList,orgId);
		return R.data(add);
	}

后来报400,网上搜了一些解决办法,参考了一下成功解决
这是修改后的后端方法
用的是阿里巴巴的fastjson

public R<Integer> saveTimeHistoryList(@RequestParam(value = "tempDatas") String tempDatas ,String orgId) {

		JSONObject object=JSON.parseObject(tempDatas);
		JSONArray newArray=new JSONArray();
		int size=object.size();
		if(size>0){
			for (int i = 0; i <size ; i++) {
				newArray.add(object.get(i));
			}
		}

		String date=newArray.toString();
		Integer add= channelService.saveTimeHistoryList(date,orgId);

		return R.data(add);
	}

前端将数组转为字符串

  	const tempData = Object.assign({}, _this.flagHistoryList);
    const tempDatas = JSON.stringify(tempData);
       saveFlagHistoryList(tempDatas, this.orgId)
         .then(res => {

          var datas = res.data.data;
         console.log("历史", datas);
       });

因为我的需求是将json数组转成字符串存到表里面,页面回显需要这样写,主要记录一下前端传json数组到后台报400错误的解决方法,仅供参考

Logo

前往低代码交流专区

更多推荐