一、问题描述

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

 

Logo

前往低代码交流专区

更多推荐