zoukankan      html  css  js  c++  java
  • JSON.parse(jsonStr)和eval('('+jsonStr+')')

    我们先初始化一个json格式的对象:

      var jsonDate = '{ "name":"周星驰","age":23 }'

      var jsonObj = eval( '(' + jsonDate + ')' );  // eval();方法

      var jsonObj = JSON.parse( jsonDate );  // JSON.parse(); 方法

    然后在控制台调用:

      console.log( jsonObj.name );  // 两种方法都可以正确输入 周星驰

    那么问题来了 两种方法有什么区别呢?(下面我们稍微把代码改动一下,蓝色字体为修改部分)

      var jsonDate = '{ "name":alert("hello"),"age":23 }'

      var jsonObj = eval( '(' + jsonDate + ')' );  // eval();方法

      console.log( jsonObj.age );  //会先执行“alert”输出“hello”  然后才输出 23

    换“JSON.parse();”方法:

      var jsonDate = '{ "name":alert("hello"),"age":23 }'

      var jsonObj = JSON.parse( jsonDate );  // JSON.parse(); 方法

      cosole.log( jsonobj.age )  // 报错  这个错误告诉我们这个字符串是不合法的

    小结:“eval();”方法解析的时候不会去判断字符串是否合法,而且json对象中的js方法也会被执行,这是非常危险的;而“JSON.parse();”方法的优点就不用多说了,推荐此方法。

  • 相关阅读:
    【三中校内训练】怎样更有力气
    【四校联考】立方体
    【四校联考】点
    第11章 卷积神经网络(CNNs)
    第10章神经网络基础
    在jupyter中配置python3
    第9章 优化方法和归一化
    第8章 参数化学习(parameterized learning)
    第7章 你的第一个分类器
    第6章 配置开发环境
  • 原文地址:https://www.cnblogs.com/Med1tator/p/6888101.html
Copyright © 2011-2022 走看看