qs.stringify()、qs.parse()的使用
阿新 • • 發佈:2022-03-29
- qs是什麼?
- 使用方法
-
qs是npm倉庫所管理的包,可以通過npm install qs安裝,因此我們可以直接通過require('qs')引用得到哦~。
-
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
})
}
})
}