1. 程式人生 > 其它 >qs.stringify()、qs.parse()的使用

qs.stringify()、qs.parse()的使用

  • qs是什麼?
  • 使用方法
  1. qs是npm倉庫所管理的包,可以通過npm install qs安裝,因此我們可以直接通過require('qs')引用得到哦~。

  2. qs.stringify()作用是將物件或者陣列序列化成URL的格式。那麼這句話是什麼意思呢?

 

             舉兩個栗子:

    物件序列化

let obj = {
methods: 'query_stu'
id: 1,
name: 'chenchen'
}
qs.stringify(obj)
//   methods=query_stu&id=1&name=chenchen    這就是我們的傳到伺服器的url

 

    陣列序列化

let arr = [2,3]
qs.stringify({a:arr})
// 'arr[0]=2&arr[1]=3'

這種格式可以進行轉為序列化,但是url中會帶有陣列的下標a[0]、a[1],這並不是我們一般的處理辦法。常用方法如下:

// 常用並推薦使用
let arr = [2,3]
qs.stringify({a:arr},{indices:false});
// 'arr=2&arr=3' 注意這個格式,一般使我們常用的格式哦~

其中:indices:false,去除預設處理的方式。如果不寫這個的話,則預設是第一種處理的方式(帶下標)。

    3.qs.parse()則就是反過來啦,將我們通過qs.stringify()序列化的物件或者陣列轉回去。

    舉個栗子:

let url = 'id=1&name=chenchen'
qs.parse(url)
// {id:1,name:chenchen}  
最後貼一個我司的一個api,給大家一個真實的感受:
// 根據業務id查詢業務費用列表
export function commonBuzCostPage(params) {
  return request({
    url: `/departmentCost/commonBuzCostPage`,
    method: 'get',
    params,
    paramsSerializer: params => {
      return qs.stringify(params, {
        indices: false
      })
    }
  })
}