qs.stringify和qs.parse是用于处理URL查询字符串的工具函数的方法。
qs.stringify用于将一个对象序列化为URL查询字符串的格式。它接收一个对象作为参数,并返回一个字符串。下面是一个例子:
const qs = require('qs');
const params = { name: 'John', age: 30 };
const queryString = qs.stringify(params);
console.log(queryString); // 输出 "name=John&age=30"
qs.parse用于将URL查询字符串解析为一个对象。它接收一个字符串作为参数,并返回一个解析后的对象。下面是一个例子:
const queryString = 'name=John&age=30';
const params = qs.parse(queryString);
console.log(params); // 输出 { name: 'John', age: '30' }
处理数组
对象中包含数组
const qs = require('qs')
const obj = {
name: 'zhangsan',
age: 18,
hobby: ['eat', 'sleep', 'play'],
}
const str = qs.stringify(obj)
console.log(str);
// name=zhangsan&age=18&hobby%5B0%5D=eat&hobby%5B1%5D=sleep&hobby%5B2%5D=play
const obj2 = qs.parse(str)
console.log(obj2);
// { name: 'zhangsan', age: '18', hobby: [ 'eat', 'sleep', 'play' ] }
设置数组编码格式
默认编码后的数组加上[索引]
设置{arrayFormat: ‘repeat’}后 变为hobby=eat&hobby=sleep&hobby=play
const array = ['姓名','年龄','爱好']
const str2 = qs.stringify(array)
console.log(str2);
//0=%E5%A7%93%E5%90%8D&1=%E5%B9%B4%E9%BE%84&2=%E7%88%B1%E5%A5%BD
const str3 = qs.stringify(obj,{ arrayFormat: 'indices'})
console.log(str3);
//name=zhangsan&age=18&hobby%5B0%5D=eat&hobby%5B1%5D=sleep&hobby%5B2%5D=play
//name=zhangsan&age=18&hobby[0]=eat&hobby[1]=sleep&hobby[2]=play
const str4 = qs.stringify(obj,{ arrayFormat: 'repeat' })
console.log(str4);
//name=zhangsan&age=18&hobby=eat&hobby=sleep&hobby=play