qs、querystring、JSON

2,033 阅读1分钟

区别

  1. 这三个都有共同的方法:stringify、parse,分别用于对象转字符串、字符串转对象
  2. JSON为JavaScript内置,qs需要通过npm安装,querystring是node内置核心模块
  3. 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));