一.什么是qs.js库
qs是一个url参数转化(parse和stringify)的js库。
二.使用
1. qs.parse
qs.parse方法可以把一段格式化的字符串转换为对象格式,比如
let url = "http://item.taobao.com/item.html?a=1&b=2&c=3&d=&e";
let data = qs.parse(url.split('?')[1]);
console.log(data)
// data的结果
{
a:1,
b:2,
c:3,
d:"",
e:""
}
2. qs.stringify
qs.stringify 则和 qs.parse 相反,是把一个参数格式化为一个字符串
let params = {c: "3", a: 2"", b: ""};
qs.stringify(params)
//结果是
"c=3&a=2&b="
3. 指定数组编码格式
let params = [1,2,3];
// indices 默认
qs.stringify({a:params},{arrayFormat:'indices'})
//结果是
'a[0]=1&a[1]=2&a[2]=3'
//brackets []
qs.stringify({a:params},{arrayFormat:'brackets'})
//结果是
"a[]=1&a[]=2&a[]=3"
//repeat
qs.stringify({a:params},{arrayFormat:'repeat'})
//结果是
'a=1&a=2&a=3'
4. 处理json格式的参数
在默认情况下,json格式的参数会用 【】 方式编码
let json = { a: { b: { c: 'd', e: 'f' } } };
qs.stringify(json);
//结果 'a[b][c] = d&a[b][e]=f'
但是某些服务端框架,并不能很好的额处理这种格式,所以需要转为下面的格式
qs.stringify(json,{allowDots:true});
//结果 'a.b.c=d&a.b.e=f'