JSON

javascript eval和JSON之间的联系

字号+ 作者:H5之家 来源:H5之家 2015-09-23 17:16 我要评论( )

牛图库(niutuku.com)素材网提供eval,JSON,等设计素材免费下载。

本文着重解释eval函数和JSON数据格式之间的联系以及一些细节上的问题。

如果您想详细了解eval和JSON请参考以下链接:

eval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/Eval

JSON:

eval函数的工作原理

eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句。eval函数将把最后一个表达式或者语句所包含的值或引用作为返回值。

举例说明

  • eval评估JavaScript表达式
  • foobar foobar);
  • eval评估JavaScript语句
  • foobar foobar
    foobar foobar);

    JSON的格式

    JSON的格式是由大括号和由冒号(:)构成的名值对所组成的。注意JSON格式与对象字面量 (object literals) 的区别:JSON的名字部分严格用引号+名字来表示。

    举例说明

  • 对象的字面量

  • age
    special
    sayName

  • JSON对象






  • eval和JSON

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

    jsonFormat

    为什么要加括号?

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

    JSON格式的名字部分为什么要加引号?

    因为eval函数会将{foo:”bar”}解释成合法的JavaScript语句,而非表达式。但是人们往往想要的是让eval将这段代码解释成一个对象。所以JSON格式会强制你去在名字的外侧加上引号再结合圆括号,这样eval就不会错误的将JSON解释成代码块。

    举例说明

  • eval错误解析语义
  • eval正确解析JSON
  • 结论

    理解eval的工作原理和json的严格的限定格式,合理结合eval和json应用于JavaScript的数据传递和对象转换。

    following this format:

    jsonString

    搜索:eval JSON
  • 上一篇:
  • 下一篇:

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • php CI 实战教程:[5]用curl获取json并解析

      php CI 实战教程:[5]用curl获取json并解析

      2016-02-26 17:00

    •  JSON入门级学习总结-JSON数据结构

      JSON入门级学习总结-JSON数据结构

      2016-02-25 11:05

    • Android解析Json速度最快的库:json

      Android解析Json速度最快的库:json

      2016-02-13 18:00

    • JavaScript转换与解析JSON方法实例详解第1/2页

      JavaScript转换与解析JSON方法实例详解第1/2页

      2016-02-10 21:25

    网友点评