最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Ajax中解析Json的两种方法对比分析_json

来源:动视网 责编:小采 时间:2020-11-27 21:39:57
文档

Ajax中解析Json的两种方法对比分析_json

Ajax中解析Json的两种方法对比分析_json:eval(); //此方法不推荐 JSON.parse(); //推荐方法 一、两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ name:周星驰,age:23 }' var jsonObj = eval( '(' + jsonDate + ')' ); // eva
推荐度:
导读Ajax中解析Json的两种方法对比分析_json:eval(); //此方法不推荐 JSON.parse(); //推荐方法 一、两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ name:周星驰,age:23 }' var jsonObj = eval( '(' + jsonDate + ')' ); // eva


eval(); //此方法不推荐

JSON.parse(); //推荐方法

一、两种方法的区别

我们先初始化一个json格式的对象:

然后在控制台调用:

  console.log( jsonObj.name ); // 两种方法都可以正确输入 周星驰

那么问题来了 两种方法有什么区别呢?(下面我们稍微把代码改动一下,蓝色字体为修改部分)

输出“hello” 然后才输出 23

换“JSON.parse();”方法:

小结:“eval();”方法解析的时候不会去判断字符串是否合法,而且json对象中的js方法也会被执行,这是非常危险的;而“JSON.parse();”方法的优点就不用多说了,推荐此方法。(不明白的盆友可以自己在控制台测试一下)

二、扩展问题

代码如下:
var jsonDate = '{ "name":"周星驰","age":23 }'

大家可以看到在上面测试时一直用红色把包在花括号外面的引号标注了起来,这对引号是很关键却又是常常被忽略的,因为 “eval();” 和 “JSON.parser();” 这两个方法的参数只接受字符串,也就是说只能解析字符串!!

那我不经会有一个思考,我们在初始化的时候若不加引号对,那么它本身就是对象,js可以直接获取对象本身的属性和方法;为什么还要加引号将它变成字符串之后再用 “eval();” 或者 “JSON.parse();” 解析,这样做不是既不环保又没有效率吗?

原因很简单:前端提供给后台的只能是字符串数据格式,后台返回给前台的就看返回的是什么数据格式,是字符串就必须解析之后再用。

(这个小问题一般大家都会忽略掉,不太关注。我之所以好奇的原因也是因为对后台了解的不够,把这个问题抛出来希望对后台不熟的朋友有所帮助,知道是怎么回事后自然而然会加深记忆,在开发过程中就不会漏掉了)

以上所述就是本文的全部内容了,希望大家能够喜欢。

文档

Ajax中解析Json的两种方法对比分析_json

Ajax中解析Json的两种方法对比分析_json:eval(); //此方法不推荐 JSON.parse(); //推荐方法 一、两种方法的区别 我们先初始化一个json格式的对象: var jsonDate = '{ name:周星驰,age:23 }' var jsonObj = eval( '(' + jsonDate + ')' ); // eva
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top