eval(); //此方法不推荐
JSON.parse(); //推荐方法
一、两种方法的区别
我们先初始化一个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();”方法的优点就不用多说了,推荐此方法。(不明白的盆友可以自己在控制台测试一下)
二、扩展问题
var jsonDate = '{ "name":"周星驰","age":23 }'
大家可以看到在上面测试时一直用红色把包在花括号外面的引号标注了起来,这对引号是很关键却又是常常被忽略的,因为 “eval();” 和 “JSON.parser();” 这两个方法的参数只接受字符串,也就是说只能解析字符串!!
那我不经会有一个思考,我们在初始化的时候若不加引号对,那么它本身就是对象,js可以直接获取对象本身的属性和方法;为什么还要加引号将它变成字符串之后再用 “eval();” 或者 “JSON.parse();” 解析,这样做不是既不环保又没有效率吗?
原因很简单:前端提供给后台的只能是字符串数据格式,后台返回给前台的就看返回的是什么数据格式,是字符串就必须解析之后再用。
(这个小问题一般大家都会忽略掉,不太关注。我之所以好奇的原因也是因为对后台了解的不够,把这个问题抛出来希望对后台不熟的朋友有所帮助,知道是怎么回事后自然而然会加深记忆,在开发过程中就不会漏掉了)
以上所述就是本文的全部内容了,希望大家能够喜欢。
本文向大家介绍横向对比分析Python解析XML的四种方式,包括了横向对比分析Python解析XML的四种方式的使用技巧和注意事项,需要的朋友参考一下 在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受。 在网络搜索后发现,目前应用比较广泛,且效率相对较高的ElementTree也是一个比较多人推荐的算法,
本文向大家介绍Java中Json解析的方法分析,包括了Java中Json解析的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java中Json解析的方法。分享给大家供大家参考,具体如下: 首先准备一个JSON格式的字符串 下面是一个Json解析的程序代码 PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用: 在线JSON代码检验、检验、美化、格式
本文向大家介绍详解Swift model 解析的两种方法,包括了详解Swift model 解析的两种方法的使用技巧和注意事项,需要的朋友参考一下 详解Swift model 解析的两种方法 1. 常规解析方法 model 2. 利用swift自有的函数进行解析-------推荐 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
本文向大家介绍JavaScript中解析JSON数据的三种方法,包括了JavaScript中解析JSON数据的三种方法的使用技巧和注意事项,需要的朋友参考一下 概述 现在JSON格式在web开发中越来越受重视,特别是在使用ajax开发项目的过程中,经常需要将json格式的字符串返回到前端,前端解析成JS对象(JSON )。 ECMA-262(E3)中没有将JSON概念写到标准中,还好在 ECMA-
本文向大家介绍IOS中Json解析实例方法详解(四种方法),包括了IOS中Json解析实例方法详解(四种方法)的使用技巧和注意事项,需要的朋友参考一下 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验(点击打开链接)。此网站不仅可以检测Json代码
本文向大家介绍分享ajax的三种解析模式,包括了分享ajax的三种解析模式的使用技巧和注意事项,需要的朋友参考一下 一、Ajax中的JSON格式 html代码: PHP代码: 二 Ajax中的XML格式 html页面: PHP页面代码: 三 Ajax中的HTML格式 HTML页面: php页面: 以上内容是小编给大家分享ajax的三种解析模式,希望大家喜欢。