qs.parse()、qs.stringify() 、JSON.stringify()以及JSON.parse()的区别

  这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));

猜你喜欢

转载自www.cnblogs.com/ldq678/p/10988854.html