由于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]

转载于:https://www.cnblogs.com/xiaochao12345/p/4409575.html

JS中eval处理JSON数据 为什么要加括号相关推荐

  1. 【转】JavaScript eval处理JSON数据 为什么要加括号

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

  2. vue.js中mock本地json数据

    vue.js中mock本地json数据 新版本的vue项目中已经将dev-server.js,dev-client.js两个js文件合并到了webpack.dev.conf.js文件中,以下分别是新旧 ...

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

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

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

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

  5. php 读取 js json格式数据,js读取和解析JSON数据的方法

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

  6. 爬虫之 JS(返回非 json 数据)的爬取

    爬虫之 JS(返回非 json 数据)的爬取 写在前面的话: 查资料,看到常用浏览器的 user-agent 参考对照表,因为之前爬取百度文库的时候用到手机的请求头,所以就想把这些所有请求头爬下来,结 ...

  7. JS中巧妙使用JSON教程

    JS中巧妙使用JSON教程 1.JSON.parse() 2.JSON & Date 3.JSON.stringify() 1.JSON.parse() 我们可以使用 JSON.parse() ...

  8. 如何在Tensorflow.js中处理MNIST图像数据

    by Kevin Scott 凯文·斯科特(Kevin Scott) 如何在Tensorflow.js中处理MNIST图像数据 (How to deal with MNIST image data i ...

  9. Swift语言中如何使用JSON数据教程

    原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift- ...

最新文章

  1. gst-crypto GStreamer插件
  2. 最佳适应算法的计算方法
  3. 笔记-项目立项管理-项目论证的程序
  4. 【算法】N Queens Problem
  5. Django提交表单报错:CSRF token missing or incorrect.
  6. html5 2015,2015年有用的16大免费的响应式HTML5框架
  7. 解决方案大全ImportError: libta_lib.so.0: cannot open shared object file: No such file or directory
  8. java知识点3(null)
  9. CAN学习笔记之15765-2协议摘要
  10. 文本分析用GUI界面显示
  11. 软考—软件设计师(软件工程基础知识)
  12. ue4之将Sequence嵌入蓝图
  13. 大神详细的ACM训练计划
  14. 每个人都应该具有创业精神 ——《穿布鞋的马云》读后感
  15. Cesium 关于Bently模型的处理(dgn格式)
  16. Python 简单的龟鱼游戏
  17. 7——18 day 24 35min 类属性
  18. python5.0完整版
  19. 攻击JavaWeb应用[2]-CS交互安全
  20. 基于PaddleSeg实现眼底血管分割——助力医疗人员更高效检测视网膜疾病

热门文章

  1. linux 故障:df -h统计磁盘空间占用太多,但又du -h找不到大的文件
  2. http://wenku.baidu.com/view/63e7b8270066f5335a812142.html
  3. 各种initcall的执行先后顺序(module_init、postcore_initcall、arch_initcall、subsys_initcall、 fs_initcall)...
  4. 《算法导论》(一)--插入排序与合并排序
  5. python中setup函数的用法_Vue 3 setup 函数
  6. leetcode算法题--二叉树的深度
  7. linux存储--文件描述符以及file结构体(一)
  8. android工程师 腾讯,腾讯音乐Android工程师一面面试题记录,拿走不谢!
  9. 使用C#格式化字符串
  10. 在Pycharm编辑器中调用getpass模块