vue 传递数组后端java接收问题(qs和json)

一、问题描述

1.通过qs.stringify()

      let array = [
        {"name":"a","id":1}, 
        {"name":"b","id":2}, 
        {"name":"c","id":3}
      ]

      let data = {
        array : array,
        number : 1,
        string : "STRING"
      }

      this.$axios({
        method: "post",
        url: "url",
        data: qs.stringify(data)
      }).then(res => {});

结果:

array[0][name]	a
array[0][id]	1
array[1][name]	b
array[1][id]	2
array[2][name]	c
array[2][id]	3
number	1
string	STRING

2.通过JSON.stringify()


      this.$axios({
        method: "post",
        url: "url",
        data: JSON.stringify(data)
      }).then(res => {});

结果:

{"array":[{"name":"a","id":1},{"name":"b","id":2},{"name":"c","id":3}],"number":1,"string":"STRING"}

如果java接收时使用的是List,那么使用qs来转化数组是会报错的,我测试是在spring mvc自动转配时。

而选择JSON来传化可以解决这个问题,可是JSON转化后端接收可能会出现数据为 [] 和为 0 的结果(原因还在寻找)

二、解决方法

1.将后端接收改为数组

2.将数组先用JSON转一次,再加入对象,再用qs来转

结果:

array	[{"name":"a","id":1},{"name":"b","id":2},{"name":"c","id":3}]
number	1
string	STRING

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值