由于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 eval处理JSON数据 为什么要加括号相关推荐

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

    由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的JSON数据转化为可用的JavaScript对象.利用eval函数 ...

  2. 为什么eval某个json字符串时要加括号?

    在做与服务器交互数据的时候,我们通常会发起一个Ajax请求,然后服务器返回一个类似'{x:1,y:1}'结构的json字符串,为了方便客户端处理我们会将其转换为一个对象直接量 这很多的时候通过一个ev ...

  3. 利用百度APIStoreSDK获取Json数据并解析加载到ListView上

    效果图(这里只是截取了List中的一项): 一.:登录百度ApiStore,获取移动sdk Android版(同时有使用文档和示例),将jar包导入到项目中 Android Studio请在放入lib ...

  4. javascript eval和JSON之间的联系

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

  5. Web中JS(Javascript)解析JSON数据的方法

    js解析json数据,可以使用JSON.parse()方法来实现解析.JSON.parse()方法可以解析JSON字符串,转换为 JavaScript 对象 下面我们就结合简单的代码示例,给大家介绍j ...

  6. JSON数据与JavaScript对象转换

    使用JSON时,最基本的工作就是JSON数据与JavaScript对象之间的互相转换.如浏览器 从服务器端获得JSON数据,然后转换为JavaScript对象在网页输出. SON: JavaScrip ...

  7. JavaScript 解析 JSON 数据

    JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON ...

  8. js之操作JSON数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...

  9. Json学习总结(1)——Java和JavaScript中使用Json方法大全

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript ...

最新文章

  1. MFC EDIT控件的使用记录
  2. yarn下载依赖慢的解决方法
  3. 【bfs】WZK旅游(jzoj 1996)
  4. elementui图片上传php,vue+element-ui+富文本————图片上传
  5. Asterisk权威指南/第五章 用户设备配置
  6. HTML5 API详解(11):Cache 应用程序缓存,这下离线也可以玩了
  7. 数据库大咖解读“新基建”,墨天轮四重好礼相送!
  8. cup first world_LOONCUP – The world's first SMART menstrual cup.
  9. 概率图模型笔记(三)条件随机场(CRF)基础
  10. gradle mysql依赖关系,如何在gradle中找到\删除未使用的依赖关系
  11. python与Spark结合,PySpark的机器学习环境搭建和模型开发
  12. large计算机应用,cies - 计算机应用.pdf
  13. HDU2174 kiki's game(博弈)
  14. JS日期前后一天方法
  15. 《磐石计划:Web安全漏洞与渗透测试》笔记
  16. 基于Java的实现宠物管理系统的设计与实现
  17. OSChina 周三乱弹 —— 有趣的灵魂会流油
  18. Java学习-用JDBC通过CURD实现简单的业务,用户登陆,学生管理
  19. 第39级台阶 蓝桥杯
  20. Xshell下载文件到本地

热门文章

  1. 设计模式:原型模式(C++)【克隆羊多莉】
  2. 基于vue框架项目开发过程中遇到的问题总结(三)
  3. SQL Server使用 LEFT JOIN ON LIKE进行数据关联查询
  4. 第三章:选择结构(一)
  5. Atitit.运行cmd 命令行 php
  6. 让Terminal显示git分支
  7. 重命名数据库解决“无法用排他锁锁定该数据库”
  8. 建议收藏!数据中台行业发展概况及展望
  9. 世界一流大学的计算机专业,在用哪些书当教材?
  10. FreeModbus TCP传输初始化