ajax中解析JSON的两种方法的比较与分析

ajax中解析JSON的两种方法的比较与分析
(EVAL); / /这个方法推荐

解析方法

一种或两种方法的区别

首先,我们用JSON格式初始化一个对象:
无功jsondate =名称{:周星驰

无功jsonobj = eval('(' + jsondate + ')'); / /(EVAL)方法;

无功jsonobj = JSON.parse(jsondate); / / JSON.parse()方法;

然后打电话到控制台:

console.log(jsonobj。名称); / /两方法可以正确输入周星驰

那么这两种方法有什么区别呢(下面我们稍微修改一下代码,蓝色字体是修改的部分)
无功jsondate =名称{:警告(你好)、年龄:23 }

无功jsonobj = eval('(' + jsondate + ')'); / /(EVAL)方法;

console.log(jsonobj。年龄); / /将首先执行警报输出Hello然后输出23

Change JSON.parse();方法:
无功jsondate =名称{:警告(你好)、年龄:23 }

无功jsonobj = JSON.parse(jsondate); / / JSON.parse()方法;

cosole.log(jsonobj。年龄) / /报错,这个错误告诉我们,字符串无效

摘要:eval();当方法是解析的,它不会判断字符串是否是合法的,并在JSON对象的js方法也会被执行。这是非常危险的,而JSON.parse(),该方法的优点是不需要多说,推荐这种方法。(一个未知的朋友可以在自己的主机上测试它)

二、可拓问题

复制代码代码如下所示:

无功jsondate =名称{:周星驰
你可以看到上面的测试被用来装在红色括号外部引用,这是关键,行情却往往被忽视,因为eval(JSON。解析器);和();这两种方法的参数可以只接受字符串只能解析字符串!!

我没有思维,我们在初始化的时候没有引号,它本身是一个JS对象,你可以直接访问对象本身的属性和方法;为什么引用到一个字符串然后eval(JSON。解析);或();不解决,既不环保低效的

原因很简单:前端只能为后台提供字符串数据格式,后台返回前台查看返回的数据格式,字符串在使用后必须解析。

这个小问题通常被忽略,不太关心,我之所以好奇是因为我对背景了解不够,把这个问题抛出来,希望能帮助一些不熟悉背景的朋友。知道正在发生的事情自然会加深内存,在开发过程中不会遗漏。
以上是本文的全部内容,希望大家能喜欢。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部