qs.stringfy序列化处理入参( a:[1,2,3,4] => a=1&a=2&a=3&a=4 )

在开发中用axios请求时,偶尔需要使用qs对数据做如下处理,

  a:[1,2,3,4] => a=1&a=2&a=3&a=4

在此记录一下
axios是自带qs因此无需再下载,可直接操作qs.stringify(params, { indices: false }),

  import qs from 'qs
  ...
  //引用时将params:{a:[1,2,3,4]}传入
  temp(params){
    return axios({
      url:'https//wwww.sss.com',
      params:qs.stringify(params, { indices: false }),
    })
  },
  ...

拓展

默认情况处理结果如下

  qs.stringify({a:[1,2,3,4]}) =》 a[0]=1&a[1]=2&a[2]=3&a[3]=4

也可以使用arrayFormat进行格式化输出

  qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
  // 'a[0]=b&a[1]=c'
  qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
  // 'a[]=b&a[]=c'
  qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
  // 'a=b&a=c'
posted @ 2021-05-18 16:26  Monday1997  阅读(431)  评论(0编辑  收藏  举报