区别
- 这三个都有共同的方法:stringify、parse,分别用于对象转字符串、字符串转对象
- JSON为JavaScript内置,qs需要通过npm安装,querystring是node内置核心模块
- JSON常用于json字符串与对象之间的相互转换,qs和querystring常用于url参数与对象的相互转换
示例
const qs = require('qs');
const querystring = require('querystring');
const obj = {
a: 1,
b: 2,
arr: [1, 2, 3],
};
// 输出:'{"a":1,"b":2,"arr":[1,2,3]}'
console.log(JSON.stringify(obj));
// 输出:'a=1&b=2&arr%5B0%5D=1&arr%5B1%5D=2&arr%5B2%5D=3
// 其中,arr%5B0%5D表示的是arr[0],arr%5B1%5D表示的是arr[1],因为[]属于不安全字符 ,所以需要对其进行percent encode编码
console.log(qs.stringify(obj));
// 输出:'a=1&b=2&arr=1&arr=2&arr=3'
// 可见qs和querystring对于url参数与对象的转换形式是不同的
console.log(querystring.stringify(obj));