We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
第一次接触 qs 这个库,是在使用axios时,用于给post方法编码,在使用过程中,接触到了一些不同的用法,写在这里分享一下。
qs.parse 方法可以把一段格式化的字符串转换为对象格式,比如
qs.parse
let url = 'http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e'; let data = qs.parse(url.split('?')[1]); // data的结果是 { a: 1, b: 2, c: '', d: xxx, e: '' }
qs.stringify 则和 qs.parse 相反,是把一个参数对象格式化为一个字符串。
qs.stringify
let params = { c: 'b', a: 'd' }; qs.stringify(params) // 结果是 'c=b&a=d'
甚至可以对格式化后的参数进行排序:
qs.stringify(params, (a,b) => a.localeCompare(b)) // 结果是 'a=b&c=d'
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'
在默认情况下,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'
The text was updated successfully, but these errors were encountered:
No branches or pull requests
第一次接触 qs 这个库,是在使用axios时,用于给post方法编码,在使用过程中,接触到了一些不同的用法,写在这里分享一下。
qs.parse
qs.parse
方法可以把一段格式化的字符串转换为对象格式,比如qs.stringify
基本用法
qs.stringify
则和qs.parse
相反,是把一个参数对象格式化为一个字符串。排序
甚至可以对格式化后的参数进行排序:
指定数组编码格式
处理json格式的参数
在默认情况下,json格式的参数会用
[]
方式编码,但是某些服务端框架,并不能很好的处理这种格式,所以需要转为下面的格式
The text was updated successfully, but these errors were encountered: