为什么JS中eval处理JSON数据要加括号


Posted in Javascript onApril 13, 2015

由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的JSON数据转化为可用的JavaScript对象。利用eval函数无疑是一种简单而直接的方法。在转化的时候需要将JSON字符串的外面包装一层圆括号:

var jsonObject = eval("(" + jsonFormat + ")");

为什么要加括号?

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:

alert(eval("{}");  // return undefined

alert(eval("({})");// return object[Object]

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

Javascript 相关文章推荐
更正确的asp冒泡排序
May 24 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
Sep 23 Javascript
浅谈JavaScript编程语言的编码规范
Oct 21 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
Jan 16 Javascript
JS中from 表单序列化提交的代码
Jan 20 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
微信小程序实现收藏与取消收藏切换图片功能
Aug 03 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
微信小程序下拉框功能的实例代码
Nov 06 Javascript
TypeScript中的方法重载详解
Apr 12 Javascript
JavaScript实现随机点名小程序
Oct 29 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 #Javascript
jsMind通过鼠标拖拽的方式调整节点位置
Apr 13 #Javascript
javascript继承的六大模式小结
Apr 13 #Javascript
javascript制作的简单注册模块表单验证
Apr 13 #Javascript
简化版手机端照片预览组件
Apr 13 #Javascript
javascript引用类型指针的工作方式
Apr 13 #Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 #Javascript
You might like
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
php事务处理实例详解
2014/07/11 PHP
jquery中this的使用说明
2010/09/06 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
利用python批量检查网站的可用性
2016/09/09 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
django删除表重建的实现方法
2019/08/28 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
Django 自动生成api接口文档教程
2019/11/19 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
现代化办公人员工作的自我评价
2013/10/16 职场文书
老师给学生的表扬信
2014/01/17 职场文书
运动会入场词100字
2014/02/06 职场文书
企业法人授权委托书
2014/09/25 职场文书
辅导员学期工作总结
2015/08/14 职场文书
python requests模块的使用示例
2021/04/07 Python
详解Spring事件发布与监听机制
2021/06/30 Java/Android
Python与C++中梯度方向直方图的实现
2022/03/17 Python
利用Apache Common将java对象池化的问题
2022/06/16 Servers