• json解析数据


    今天工作中遇到了 js 解析 后端php传递过来的json字符串错误使用alert查看数据 结果返回的是Undefined类型(未定义或者属性为null),去网上看了下关于js解析的资料发现现在有好几种解析的方式:

    第一种方式:

    使用eval函数。 
    var dataObj = eval(“(“+json+”)”);

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

    使用eval函数解析JSON是一种很不安全的方式,能不用最好就不用,原因是eval不但可以解析JSON字符串,还会执行其中的代码块(如果有的话)

    第二种方式:

    使用JSON.parse()函数.

    JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。

    两者区别:

    比如下面的字符串:

    var str = 'alert(1000.toString())';eval(str);
    JSON.parse(str);

    用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。

    注意:某些低级的浏览器尚不支持JSON.parse(),可以到 https://github.com/douglascrockford/JSON-js/blob/master/json2.js 下载。

    解析数组:
     

    <script language="javascript">
    
    var obj =eval(arr);
    
    alert(obj[0]);
    
    alert(obj[1]);
    
    alert(obj[2]);
    
    </script>
  • 相关阅读:
    PHP 超级全局变量
    PHP 魔术变量
    PHP 变量
    Thinkphp 模板中常用的系统变量总结
    PHP $GLOBALS超全局变量分析
    php使用curl的post提交数据和get获取网页数据的方法总结
    php获取客户端真实ip地址的三种方法
    Jquery 【on事件】
    ptyhon【递归练习】
    C#中的线程
  • 原文地址:https://www.cnblogs.com/sybk/p/10004707.html
Copyright © 2020-2023  润新知