eval()解析JSON
eval()将JSON文本转换为javascript对象.
如:
var data=”{‘elements’:["+
"{'firstname':'yan','lastname':'tang'},"+
"{'firstname':'tommy','lastname':'wrox'}]}”;
var obj=eval(“(“+data+”)”);//转换为json对象
为什么要在eval这里要添加 (“(“+data+”)”); 呢?
原因在于:由于eval本身可以编译并执行javascript代码, 而json是以”{ }”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{}(一个对象字面量就是包括在一对花括号里的零或多个”名/值”对),如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval(“{}”)); // return undefined
alert(eval(“({})”));// return object[Object]
除了使用eval之外,还可以使用JSON.parse();来解析JSON文本,而且更安全,因为他只能识别 JSON 文本,而不会编译脚本。速度也比使用eval()快!
转载于:https://www.cnblogs.com/JavaTechLover/archive/2012/06/25/2561024.html
eval()解析JSON相关推荐
- js使用eval解析json(js中使用json)
eval的用法eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句,下面给出eval解析json的示例 先来说eval的用法,内容比较简单,熟悉的可以跳过 eval函数接收一个参 ...
- eval解析JSON中的注意点
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- eval解析json注意点
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- jquery eval解析JSON中的注意点介绍
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- 用Js的eval解析JSON中的注意点
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
- var obj = eval(result); 解析json
l var obj = eval(result);解析json 转载于:https://www.cnblogs.com/baijin05/p/5040422.html
- 解析JSON字串的方法有eval,json_parse,JSON.parse
解析JSON字串的方法有 (1)var vjson = eval(jsonstr); 缺点:不安全,有可能jsonstr中有恶意脚本,那就麻烦了. (2)var vjson = json_parse( ...
- json java typeof_java解析json
1:下载另外一个Java的小包就可以了: http://www.JSON.org/java/json_simple.zip 里面有源码和文档例题和编程的lib包:编程只需要json_simple.ja ...
- javascript eval和JSON之间的联系
eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句.eval函数将把最后一个表达式 ...
最新文章
- mysql 编译安装
- 易格斯拖链选型手册_拖链相关知识
- soapui返回值类型都有哪些_货架的类型都有哪些呢
- java实现多级菜单(java递归)方法二
- linux之vim常见配置
- linux系统中常见的目录,Linux系统中常见的目录名称以及相应内容
- pyqt5 列表内添加按钮
- c语言作业朱鸣华,C语言程序设计习题解析与上机指导 第3版
- Win Server2016安装Glassfish4.1.2
- STM32F7--->Internal Flash
- 地图采集车的那些事 | 载车篇
- Word表格斜线怎么弄?这里有三种方法很实用
- python面向对象爬取某鱼颜值区主播图片
- android studio 如何上传文件到模拟器的根目录
- java心得!--很好的java学习历程(转自张国宝)
- 企业私域直播可以应用于哪些场景?
- word文档多级列表设置
- 设备常用网管配置举例
- java春招面试冲刺系列:mysql基础知识超详细复习
- 【导航】自己的导航网站
热门文章
- 纯JPA 入门小案例(2)
- 转】MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
- RedHat Linux 5.5系统下配置yum包详细过程
- “制造商和技术支持商”
- oracle ins-30131错误
- Diango博客--22.Django Haystack 全文检索与关键词高亮
- vb整合多个excel表格到一张_[Excel]同一工作簿中多个工作表保存成独立的表格
- jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效
- python的excel库_Python-Excel 模块哪家强?
- 关于eclipse项目红色感叹号的解决办法