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相关推荐

  1. js使用eval解析json(js中使用json)

    eval的用法eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句,下面给出eval解析json的示例 先来说eval的用法,内容比较简单,熟悉的可以跳过 eval函数接收一个参 ...

  2. eval解析JSON中的注意点

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  3. eval解析json注意点

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  4. jquery eval解析JSON中的注意点介绍

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  5. 用Js的eval解析JSON中的注意点

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  6. var obj = eval(result); 解析json

    l  var obj = eval(result);解析json 转载于:https://www.cnblogs.com/baijin05/p/5040422.html

  7. 解析JSON字串的方法有eval,json_parse,JSON.parse

    解析JSON字串的方法有 (1)var vjson = eval(jsonstr); 缺点:不安全,有可能jsonstr中有恶意脚本,那就麻烦了. (2)var vjson = json_parse( ...

  8. json java typeof_java解析json

    1:下载另外一个Java的小包就可以了: http://www.JSON.org/java/json_simple.zip 里面有源码和文档例题和编程的lib包:编程只需要json_simple.ja ...

  9. javascript eval和JSON之间的联系

    eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句.eval函数将把最后一个表达式 ...

最新文章

  1. mysql 编译安装
  2. 易格斯拖链选型手册_拖链相关知识
  3. soapui返回值类型都有哪些_货架的类型都有哪些呢
  4. java实现多级菜单(java递归)方法二
  5. linux之vim常见配置
  6. linux系统中常见的目录,Linux系统中常见的目录名称以及相应内容
  7. pyqt5 列表内添加按钮
  8. c语言作业朱鸣华,C语言程序设计习题解析与上机指导 第3版
  9. Win Server2016安装Glassfish4.1.2
  10. STM32F7--->Internal Flash
  11. 地图采集车的那些事 | 载车篇
  12. Word表格斜线怎么弄?这里有三种方法很实用
  13. python面向对象爬取某鱼颜值区主播图片
  14. android studio 如何上传文件到模拟器的根目录
  15. java心得!--很好的java学习历程(转自张国宝)
  16. 企业私域直播可以应用于哪些场景?
  17. word文档多级列表设置
  18. 设备常用网管配置举例
  19. java春招面试冲刺系列:mysql基础知识超详细复习
  20. 【导航】自己的导航网站

热门文章

  1. 纯JPA 入门小案例(2)
  2. 转】MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
  3. RedHat Linux 5.5系统下配置yum包详细过程
  4. “制造商和技术支持商”
  5. oracle ins-30131错误
  6. Diango博客--22.Django Haystack 全文检索与关键词高亮
  7. vb整合多个excel表格到一张_[Excel]同一工作簿中多个工作表保存成独立的表格
  8. jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效
  9. python的excel库_Python-Excel 模块哪家强?
  10. 关于eclipse项目红色感叹号的解决办法