`
hwpok
  • 浏览: 241974 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

为什么要使用对象直接量,它和JSON有什么关系(转)

阅读更多

近来看了国外的一些知名网站的JS源码,发现里面很多地方都用到对象直接量,特别是定义一些对象和类的时候。也许你会问什么是对象直接量? ECMAScript V3定义了对象直接量的语法,使你能够创建对象并定义它的属性。对象直接量(也称为对象初始化程序)是由一个列表构成的,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开的,整个列表包含花括号之中。下面就是一个简单的例子:

var shenni= {age:24,birthday:'1982年2月14日'};

也可以嵌套:

var shenni= {age:24,birthday:{year:'1982年',month:'2月',day:'14日'}};

需要注意的就是,对象直接量中的属性值不必是产量,它可以是任意的JavaScript表达式

如:
var shenni= {age:(2+4),birthday:{year:'1982年',month:'2月',day:'14日'}};

可能有些人看这个东西很像一个东西,对就是JSON。看看下面的这条语句就知道了:
{'age':24,'birthday':'1982年2月14日'};
这就是JSON,唯一的区别就是age和'age'。它们这么像,是不是应该有什么联系或者什么姻缘呢。
不错,它们是可以相互转换地,对象直接量可以转换为JSON,JSON也可以转换为对象直接量。这也是JSON
能够作为第三方的交换数据的重要原因之一,它可以直接转换,然后在JavaScript中使用。

转换的方法如下:
对象直接量 -> JSON ,这个需要用到W3C官方提供的JOSN.js进行转换。其实这个js里面的代码也简单,有兴趣的朋友可以下载看一看。

var JSON = JSON.stringify(shenni) OK, 这样变量JSON就是对象直接量了。

JSON-> 对象直接量:
我的另外一篇谈论EVAL方法的用途里面已经提到这方面的应用了!
eval ('var sheni = ('+JSON+')');//JSON 为{'age':24,'birthday':'1982年2月14日'}字符串

分享到:
评论

相关推荐

    rescu:适用于JAX-RS的轻量级JSON Rest客户端实用程序

    ResCU主要专注于基于json的服务,并使用Jackson进行json到对象的映射。 其他几个库也可以做到这一点(例如,Jersey和RESTEasy)。 ResCU的好处是它非常轻巧,并且具有最小的依赖关系。 这对于在Android应用程序等中...

    JXWork任务管理软件源码及JXBiz平台参考手册

    JXBiz平台提供了实体类到数据表的直接映射与操作、事务管理、对象间关系管理、数据缓存、权限检查等能力,同时为简化小微企业的业务操作,提供了业务自动机和业务规则等复杂业务操控能力。使得开发者可以进一步集中...

    moshpic:将JSON(或任何文本数据)编码为图像(参见QR码或言论自由标志)

    数据使用rgb值直接编码为矩形(由于浏览器的合成,alpha不起作用,请参见 )。 矩形的数量和大小可根据数据量和画布大小进行调整。 encode(canvasElement,imageElement),返回数据。 解码器当前在画布上显示调试...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    10.4.4 创建和使用dataset对象 415 10.4.5 ado.net的datatable对象 417 10.4.6 dataset和datatable对象的高级ado.net特性 418 10.5 使用通用提供程序模型 420 10.6 ado.net中的连接池 422 10.7 ...

    精通AngularJS part1

    Pawel Kozlowski有15年以上的Web开发经验,接触过多种Web技术、语言和平台。他精通客户端和服务器端编程,并始终在寻找能提高生产率的工具和流程。Pawel是自由和开源软件的坚定支持者,他在AngularJS 社区非常活跃,...

    大数据导论(1)——“大数据”相关概念、5V特征、数据类型.pdf

    由于关系型数据库发展较为成熟,因此结构化数据的存储、分析⽅法也发展的较为全⾯, 有⼤量的⼯具⽀持结构化数据分析,分析⽅法⼤部门以统计分析和数据挖掘为主。其中,关系型数据库(Relational Database)是创 建...

    lamp-cloud微服务脚手架

    代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Nacos、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis、SpringBoot、Redis、RibbitMQ等主要框架和中间件。 lamp-cloud微服务脚手架功能: 1、服务...

    PHP中安装使用mongodb数据库

    传统数据库中,我们要操作数据库数据都要书写大量的sql语句,而且在进行无规则数据的存储时,传统关系型数据库建表时对不同字段的处理也显得有些乏力,mongo应运而生,而且ajax技术的广泛应用,json格式的广泛接受,...

    antlr4权威指南

     为什么不花5天时间编程,来使你25年的生活自动化呢?ANTLR 4正是我所期望的语法分析器生成器,现在,我终于能够回头去研究我原先在20世纪80年代试图解决的问题——假如我还记得它的话。  本书的主要内容本书是你...

    ASP EXCEL导入SQL

    而以序列化的JavaScript对象为基础的JSON已经获得了广泛认可,它被认为能以远比XML更好的方式来序列化和传输简单数据结构,而且它更简洁。这对REST是一个极大贡献和补充。  当前的网络应用软件还违背了REST的“无...

    ExtAspNet_v2.3.2_dll

    -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack->AutoPostBack, Event ...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    KindEditor基本使用和文件操作 作业 第25周 今日内容概要 博客系统示例预览 组合搜索组件 JSONP跨域请求jQuery方式 JSONP跨域请求本质 XSS过滤以及单例模式 博客系统表结构讲解 博客系统功能讲解 CMDB介绍 CMDB...

    lamp-cloud微服务脚手架-其他

    代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Nacos、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis、SpringBoot、Redis、RibbitMQ等主要框架和中间件。 lamp-cloud功能: 1、服务注册&发现...

Global site tag (gtag.js) - Google Analytics