栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

JSON 和 JavaScript eval使用说明

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSON 和 JavaScript eval使用说明

JSON 格式可以使对象(object)、数组(array)、值(value)、字符串(string)、数值(number)。
复制代码 代码如下:


参考:http://www.json.org/json-zh.html   下面来看看 Javascript 的 eval 函数。
  eval 函数会评估给定的一个Javascript代码的字符串,并试图去执行包含在字符串里的表达式或者一系列的合法的 Javascript 语句。eval 函数将把最后一个表达式或者语句包含的值或引用作为返回值。

代码
复制代码 代码如下:


  JSON 和 对象字面量(Object Literals)的区别:JSON 的名字部分严格用引号+名字来表示。
代码
复制代码 代码如下:


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

  JSON 格式的名字部分为什么要加引号?因为eval函数会将{foo:"bar"}解释成合法的Javascript 语句,而非表达式。但人们往往是想让eval将这段代码解释成一个对象。所以JSON 格式会强制你去在名字的外侧加上引号,再结合圆括号,eval就不会错误的将JSON解释成代码块。
  
复制代码 代码如下:
//eval 错误解析语义
alert(eval('{foo:"bar"}')); //return "bar",incorrect
//eval 正确解析JSON
alert(eval('({"foo":"bar"})'));//return JSON object,correct

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/115831.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号