zoukankan      html  css  js  c++  java
  • 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));
  • 相关阅读:
    5.2 i++
    5.1 赋值语句
    Implement Queue using Stacks
    Binary Tree Paths
    Single Number III
    Ugly Number
    SurfaceHolder.Callback
    intellj(idea) 编译项目时在warnings 页签框里 报 “xxx包不存在” 或 “找不到符号” 或 “未结束的字符串字面值” 或 “需要)” 或 “需要;”等错误提示
    Hibernate添加日志--log4j
    java实现网页验证码
  • 原文地址:https://www.cnblogs.com/ldq678/p/10988854.html
Copyright © 2011-2022 走看看