qs.stringify()、JSON.stringify()、qs.parse()、JSON.parse()比较

4,407 阅读1分钟

一、qs.stringify()和JSON.stringify()比较:

qs.stringify():

1、认识qs

qs是一个npm仓库所管理的包;

qs.stringify()是将对象序列化成URL的形式,以&进行拼接。

关于Vue中,序列化字符串,处理发送请求的参数

2、安装方式

npm install qs

3、引入方式

import qs from 'qs'

4、实例如下

var a = {name:'hehe',age:10,score:[89,90,100]};
qs.stringify(a)
// 'name=hehe&age=10&score[0]=89&score[1]=90&score[2]=100'

5、数组参数的特殊处理

那么当我们需要传递数组的时候,我们就可以通过下面方式进行处理:

默认情况下,它们给出明确的索引,如下代码:

qs.stringify({ a: ['b', 'c', 'd'] });
// 'a[0]=b&a[1]=c&a[2]=d'

也可以进行重写这种默认方式为false

qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });
// 'a=b&a=c&a=d'

当然,也可以通过arrayFormat 选项进行格式化输出,如下代码所示:

qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 'a[0]=b&a[1]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 'a[]=b&a[]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 'a=b&a=c'

JSON.stringify():

1、认识:

它是对象形式的数据转为字符串的形式

2、实例如下:

var a = {name:'hehe',age:10,score:[89,90,100]};
JSON.stringify(a)
// "{"name":"hehe","age":10,"score":[89,90,100]}"

二、qs.parse()和JSON.parse()比较:

qs.parse():

1、认识 qs.parse()将URL解析成对象的形式;

2、实例如下:

let b = "name=hehe&age=10&score=89&score=90&score=100"
qs.parse(b)
// {name: "hehe", age: "10", score: Array[3]}

JSON.parse():

1、认识:

它是将字符串格式的数据转为对象的形式;

2、实例如下:

let b = '{"name":"hehe","age":10,"score":[89,90,100]}'
JSON.parse(b)
// {name: "hehe", age: "10", score: Array[3]}