zoukankan      html  css  js  c++  java
  • 使用JSON.parse()转化成json对象需要注意的地方

    var str = '{"name":"小明","age":18}';

    将字符串转化json对象:

    1. var json = JSON.parse(str);

    2. var json = eval("(" + str + ")");

    3. var json = (new Function("return " + str))();

    通过console.log()将json打印到控制台,不管是使用以上3种哪一种方法,都能在chrome控制台看到成功转化的结果:

    使用JSON.parse()转化成json对象需要注意的地方

    但是如果使用JSON.parse()方法来转化json对象,需要注意的坑点是什么?

    1.字符串的数据格式

    以上举例 str = '{"name":"小明","age":18}'; 属性name和age都用双引号引住,

    有的人可能会习惯写成对象形式的字符串,如:str = '{name:"小明",age:18}';

    结果使用JSON.parse()来转化会报错,因为使用JSON.parse需严格遵守JSON规范。

    使用JSON.parse()转化成json对象需要注意的地方

    使用JSON.parse()转化成json对象需要注意的地方

    2.单引号与双引号

    我们看到一开始的举例中 var str = '{"name":"小明","age":18}'; 使用单引号来套双引号,如果反过来写呢,如:var str = "{'name':'小明', 'age':18}";(相信也不少人习惯用双引号套单引号)

    结果使用JSON.parse()来转化也会报错

    使用JSON.parse()转化成json对象需要注意的地方

    使用JSON.parse()转化成json对象需要注意的地方

    最后总结来说,如果使用JSON.parse()方法来转化成json对象的数据格式的话,需要注意的是被转化的字符串里面的属性要使用引号,并且总体是单引号套双引号的方式。

    当然,如果你使用eval()或者new Function()的方式来转化,那就完全可以忽略上述的这两点需要注意的地方~( ̄▽ ̄~)(~ ̄▽ ̄)~哈哈

    附:

    eval() 函数可将字符串转换为代码执行,并返回一个或多个值

    eval调用时,实例为eval( "( javascript代码 )" )

    var str = "function(){alert('a');}“;

    str = eval("("+str+")");

    str();

    eval()的返回值

    eval()的返回值遵循以下规则:

    1.如果eval()的参数不是字符串,那么eval()将直接返回参数。

    2.如果eval()的参数是字符串,那么eval()将这个字符串解析成代码后进行执行,并返回最后一行代码执行的结果。

    3.如果字符串无法解析成合法的代码,eval()将抛出SyntaxError错误。

  • 相关阅读:
    PostgreSQL中的partition-wise join
    Partition-wise join
    外观模式 门面模式 Facade 结构型 设计模式(十三)
    桥接模式 桥梁模式 bridge 结构型 设计模式(十二)
    组合模式 合成模式 COMPOSITE 结构型 设计模式(十一)
    创建型设计模式对比总结 设计模式(八)
    原型模式 prototype 创建型 设计模式(七)
    单例模式 创建型 设计模式(六)
    建造者模式 生成器模式 创建型 设计模式(五)
    抽象工厂模式 创建型 设计模式(四)
  • 原文地址:https://www.cnblogs.com/doudou-song/p/14036638.html
Copyright © 2011-2022 走看看