这3个方法是JavaScript语言中的方法,前端开发中经常使用的。
一、qs.stringify()和qs.parse()
qs是一个npm仓库所管理的包,可通过npm install qs
命令进行安装.
1. qs.parse()将URL解析成对象的形式
2. qs.stringify()将对象 序列化成URL的形式,以&进行拼接。
这个方法在一些特殊情况特别有用。比如当我们使用axios发post请求的时候,需要向服务端api传参,这些参数往往是组织成一个对象,如下代码所示:
axios({ method: 'post', url: 'comment', data:{ srcId : this.id, content: this.msg, add_time: new Date() } }). then(response => { //...... });
这个代码在执行的时候就会报错,究其错误,是服务器无法正确获取到post过来的参数。
你需要做的就是,要把传递给服务器的参数对象,使用qs.stringify()进行转换。正确代码如下:
axios({ method: 'post', url: 'comment', data: qs.stringify({ // 转换要传递的参数 srcId : this.id, content: this.msg, add_time: new Date() }) }). then(response => { });
二、JSON.stringify()和JSON.parse()
1.JSON.parse() 将 JavaScript 对象表示法 (JSON) 字符串转换为JSON对象。
2.JSON.stringify() 将 JSON对象 转换为 JavaScript 对象表示法 (JSON) 字符串
例如:我们往localstorage中持久化数据的时候,只能存储字符串,所以,如果待存储的数据是个js对象,那么就需要使用JSON.stringify()转换成字符串,然后再进行本地化存储
var cart = [{id: "102", price: 5528}, {id: 101,price: 268}]; localStorage.setItem('cart', JSON.stringify(cart));