深入浅析json.parse()、json.stringify()和eval()的作用详解

上传人:bin****86 文档编号:59392368 上传时间:2018-11-07 格式:DOCX 页数:5 大小:17.53KB
返回 下载 相关 举报
深入浅析json.parse()、json.stringify()和eval()的作用详解_第1页
第1页 / 共5页
深入浅析json.parse()、json.stringify()和eval()的作用详解_第2页
第2页 / 共5页
深入浅析json.parse()、json.stringify()和eval()的作用详解_第3页
第3页 / 共5页
深入浅析json.parse()、json.stringify()和eval()的作用详解_第4页
第4页 / 共5页
深入浅析json.parse()、json.stringify()和eval()的作用详解_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《深入浅析json.parse()、json.stringify()和eval()的作用详解》由会员分享,可在线阅读,更多相关《深入浅析json.parse()、json.stringify()和eval()的作用详解(5页珍藏版)》请在金锄头文库上搜索。

1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解这篇文章主要介绍了深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解的相关资料,需要的朋友可以参考下“JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。因为采用独立于语言的文本格式,也使用了类似于C语言家族的习惯,拥有了这些特性使JSON成为理想的

2、数据交换语言,作用是易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。”今天在这里笔者想简单谈谈jquery里面的JSON.parse()和JSON.stringify()函数,顺便还会提一下原生JS里面的eval()函数(1)JSON.parse 函数作用:将 JavaScript 对象表示法 (JSON) 字符串转换为对象。语法:JSON.parse(text , reviver)参数:text必需。 一个有效的 JSON 字符串。reviver可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。返回值:一个对象或数组example:var json = na

3、me:GDT,age:,University:GDUT;var info = JSON.parse(json);/解析为JSON对象document.write(info.name + is a student of + info.University + and he is + info.age + years old.); /info为Object对象(2)JSON.stringify()函数作用:将 JavaScript 值转换为 JavaScript 对象表示法 (JSON) 字符串语法:JSON.stringify( value , replacer , space)参数:value

4、必需,通常为需要转换的JavaScript值(通常为对象或者数组)replacer可选,用于转换结果的函数或者数组space可选。向返回值 JSON 文本添加缩进、空格和换行符以使其更易于读取。返回值:一个包含JSON文本的字符串example:var info = name:GDT,age:,University:GDUT;var json = JSON.stringify(info); /转换为JSON字符串document.write(json); /output为name:GDT,age:23,University:GDUT(3)eval()函数作用:eval() 函数可计算某个字符串

5、,并执行其中的的 JavaScript 代码。语法:eval(string)参数:string必需,要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。返回值:返回计算string的值,如果有的话 (没有则不做任何改变返回)example:eval(x=;y=;document.write(x*y); /output为document.write(eval(+);/output为var x=;document.write(eval(x+);/output为使用eval()函数也可以将JSON字符串解析为对象,这个功能能完成JSON.parse()的功能,但是有不一样的

6、地方,请看下面代码/ JSON.parse()var json = name:GDT,age:,University:GDUT;var info = JSON.parse(json); /解析为JSON对象document.write(info); /output为object Object/eval()var json = name:GDT,age:,University:GDUT;var info = eval( + json + ); /解析为JSON对象document.write(info); /output为object Object不知道大家有木有注意到eval()还要用一对圆括

7、号将字符串包起来,对此我寻找到比较好的解释就是:原因:归结于eval本身的问题,由于json是以”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。解决方法:加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量,如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么将会被认为是执行了一句空语句。请看下列例子的不同alert(eval(); / return un

8、definedalert(eval(+); / return objectObject另外,相对于写法格式严格的JSON.parse()来说,eval()可以解析任何字符串,eval是不安全的,因为eval比较宽松,会有潜在的安全性问题。比如以下代码:var str = a:b;document.write(eval(+str+); /正常解析为对象var str = a: (function()alert(I can do something bad!);)();eval(+str+); /可以用来执行木马脚本如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题,可见,虽然eval()功能很强大,但是实际用到的机会并不多。个人总结的时候到了,这是我人生第一篇的博客,在4月1号Fools Day诞生,写得不好的地方还希望各位多多见谅,现在技术非常渣,我很希望现在能够一点一滴去积累知识,为日后的成功奠定好基础,fighting 对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号