• eval && JSON.parse


    JSON(JavaScript Object Notation)一种轻量级的数据格式,采取完全独立于语言的文本格局,同时json是JavaScript原生格局,这意味着JavaScript在处理Json时不需要额外的api或者是对象包并且执行效果高;

    1.Json的解析办法:

    1.eval() 2.JSON.parse()

    2.一个标准的Json:

    var str = {"id":"smile","age":"21"};

    3.eval():

    eval()函数可计算某个字符串,并执行其中的JavaScript代码;

    语法:eval(string);

    该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
    如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,并通过该属性调用它,则 ECMAScript 实现允许抛出一个 EvalError 异常。
     
    eg:
    eval("x=10; y=20; document.write(x*y)");    //200;
    
    document.write(eval("2+2"));           //4;
    
    var x=10;
    document.write(eval(x
    +10));           //20;

    处理Json数据:

     
    转换Json数据,使用统一方法:
    var evalJson=eval("("+ str +")");

    加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行

    讲Json数据转换为Json对象:

    • 有"节点"的Json数据:

    var jsonText={root:[{"name":"aaa","value":"000"},{"name":"bbb","value":"111"}]};

    如果想取得name及value所对应的值:

    $(jsonText.root).each(function(i,b){
    var str=" name: "+b.name+" ,value: "+b.value;
    });

    • 不含有"节点"的Json数据:

    var jsonText='{"name":"aaa","value":"bbb"}';

    如果想取得name及value所对应的值:

    $(str).each(function(i,b) {
       
        var str=" name: "+b.name+" ,value: "+b.value;
    });

    注意:eval使用比较危险,能不用最好就不要用,以免徒增不必要的麻烦

     

     4.JSON.parse(String,fn):

    String:为必选参数,为必选数据;
    fn:为可选参数,如果不为空,则为对象的每个成员都调用此函数;

    返回对象为对象或数组;

     

    此方法简单易用,能达到与eval相同的效果,

    但不支持ie6,7标准模式;

     

    但可以使用Json2.js来解决这一问题;

     

    使用方法:
    var str=JSON.parse(json);

    $(str).each(function(i,b){
      //
    });
  • 相关阅读:
    常用等价无穷小
    高等数学: #n阶线性微分方程 #伯努利方程
    基本积分表
    复杂度计算
    多重链表
    vminsert到vmstorage链路上的配置说明
    vmstorage在全部都是旧metric情况下的写入性能测试
    【解决了一个小问题】alert manager要怎么样才能触发告警到企业微信上?
    vmstorage在新metric占整体1%情况下的写入性能测试
    vmstorage在全部都是新metric情况下的写入性能测试
  • 原文地址:https://www.cnblogs.com/SmileCN/p/3006207.html
Copyright © 2020-2023  润新知