qs.stringfy和qs.parse的使用

  • Post author:
  • Post category:其他




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



版权声明:本文为CCAHSC原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。