作家
登录

JSON 和 JavaScript eval使用说明

作者: 来源:www.28hudong.com 2013-03-30 01:31:10 阅读 我要评论

JSON 格式可以使对象(object)、数组(array)、值(value)、字符串(string)、数值(number)。 复制代码 代码如下: <script type="text/javascript"> var user = { "Name":"Andy", "Sex" :"man", "Age" :"20", "Phone":{"mobilephone":"123456789","telephone":"1234-12345678"}, "baby":[{"big":"xiaohong"},{"middle":"xiaoming"},{"small":"xiaoli"}] //包含数组 } alert(user.Name); alert(user.Phone.mobilephone); alert(user.baby[0].big); user.baby[0].big = "--";//修改了 JSON 值 alert(user.baby[0].big); </script> 参考:http://www.json.org/json-zh.html   下面来看看 JavaScript 的 eval 函数。   eval 函数会评估给定的一个JavaScript代码的字符串,并试图去执行包含在字符串里的表达式或者一系列的合法的 JavaScript 语句。eval 函数将把最后一个表达式或者语句包含的值或引用作为返回值。 代码 复制代码 代码如下: <script type="text/javascript"> var bar = "bar"; var foobar = eval('"foo"+bar'); alert(bar + foobar);//执行语句 foobar = eval('if(bar = "bar"){bar = "foo-bar";}else{bar = "bar-foo";}'); alert(foobar);//返回语句中包含的值 </script>   JSON 和 对象字面量(Object Literals)的区别:JSON 的名字部分严格用引号+名字来表示。 代码 复制代码 代码如下: <script type="text/javascript"> //对象字面量 var objectLiteral = { name:"Objector.L", age:"24", special:"JavaScript", sayName:function(){ return this.name; } }; //JSON 对象 var jsonFormat = { "summary":"Blogs", "blogrolls":[ { "title":"Explore JavaScript", "link":"http://example.com" }, { "title":"Explore JavaScript", "link":"http://example.com" } ] }; </script>   由于 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

  推荐阅读

  Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)

Document自带的方法: 循环执行:var timeid = window.setInterval(“方法名或方法”,“延时”);window.clearInterval(timeid); 定时执行:var tmid = window.setTimeout(“方法名或方法”, “延时”);window.c>>>详细阅读


本文标题:JSON 和 JavaScript eval使用说明

地址:http://www.17bianji.com/kaifa2/JS/26206.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)