作家
登录

理解JSON:3分钟课程

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

两个月前你从没听说过JSON 一个月前你听说了这个词但没有留意 一周前你发现这个词被提到多次,开始想,没错 … 又有一些垃圾东西要学了 今天你被心灵深处的一个闹铃闹醒,心想:这该死的json究竟是个什么东西?为什么突然间到处都是它了! 于是晚上我乘坐了一辆慢腾腾的公交回到家(周五通常都是很慢),然后给自己找了一大堆关于JSON资料。所以我可以文雅的带你进入JSON的大门。 这就开始了 … 这几个字母是什么意思? JavaScript Object Notation. [一个滑稽的名字。它应该被称作Lightweight Ecmascript Object Notation, 或简称 'LEON'。 ] 它是个什么东西? JSON是一种传递对象的语法,对象可以是name/value对,数组和其他对象。 下面是一小段JSON代码:{"skillz": { "web":[ {"name": "html", "years": "5" }, {"name": "css", "years": "3" }], "database":[ {"name": "sql", "years": "7" }] }} 你看懂了吧?那么当你再看到它时就知道它是JSON了。主要部分: 花括弧,方括弧,冒号和逗号 花括弧表示一个“容器” 方括号装载数组 名称和值用冒号隔开 数组元素通过逗号隔开 把它想成“得了厌食症的XML” (如果你跟我一样老,可以把它想成有层次关系的'.INI'文件) (如果你是个自以为是的Lisp小丑,可以把它想成”S-expressions”,自以为是吧) JSON很像XML,因为: 他们都“自我描述”,这意味着值都是可列举的,是“人类可读”的 都是有层级的。(例如你可以在值里再存放值) 都能被多种的编程语言解析和使用 都能使用AJAX方法来传递(例如httpWebRequest) JSON跟XML不一样,因为: XML里在元素的开始和结尾处有尖括号和标签名:JSON使用花括号,而且只在数据的开始和结束时使用。 JSON更简练,毫无疑问更适合人类书写,也许也能让我们更快速的阅读。 JSON可以在JavaScript里简单的传递到eval()方法里使用 JSON里有数组{每个元素没有自己的名称} 在XML里你可以对一个元素使用任意想要的名称,在JSON里你不能使用Javascript里的保留字 可是为什么?它有什么好的? 当你写ajax之类的东西时,如果你使用JSON,你就勉去了手工拼写XML。更迅速。 同样,当你写ajax之类的东西时,怎样最简单?XML方式还是JSON方式: XML方式: 取回一个XML文件 循环它,从中提取值 处理这些值,等 对比 JSON方式: 取回JSON字符串。 ‘eval' JSON数据 它是面向对象的吗? No,严格的说,不是。 就像是VB6里的面向对象一样。它提供了很好的封装机制,你可以使用它把数据和方法分离出来,但它不提供任何的继承,多型,接口,或其它类似的面向对象的东西 很显然,它是使javascript变得更易于维护,分析和复用的方向上前进了一步。 Thomas Frank写了一个灵巧的javascript库,叫做classyJSON,它在JSON代码上增加了继承和定义范围等特征。 它只是用在客户端吗? 是,也不是。在服务器端你可以容易的把对象序列化成JSON或反之。对于.net,程序员可以使用类似Json.net的类库使这些操作自动化(我估计是使用反射机制),或你使用自己的程序来做这些事,可能会更快些。 3分钟将近结束…. 就我所知,JSON是由一个叫做Douglas Crockford的家伙发明的。如果你喜欢的话,可以看一下他的网站,他非常的有趣。 现在去读一下懂JSON的人写的东西 (从Delicious using JSON上搜刮来的!) DOM Query Speed Test 24 ways: Don't be eval() Understanding JSON: the 3 minute lesson Serializing Objects as JavaScript using Atlas, JSON.NET and AjaxPro JSON – Wikipedia, the free encyclopedia Introduction to JSON XML.com: JSON and the Dynamic Script Tag: Easy, XML-less Web Services for JavaScript Classy JSON ajax json tutoral XML to JSON – a converter 这就是全部。 我在几分钟的时间里只能整理出这些东西——所有我说的有些东西可能完全是错的。如果是这样,请留言告诉我,告诉我我有多傻。我会很高兴的纠正任何一个错误。祝你好运! (边注:如果你把 { 和 } 替换成”<” 和 “/>”,把”:” 换成 “/”… 你会得到一个非常像gaXml的东西。有趣的世界。 (边注2:Jason 和 Ajax 都是希腊神话中的英雄。预告:另外一些即将出现的技术垃圾包括:Heracles, Perseus, Deucalion, Theseusand Bellerophon。)

  推荐阅读

  分享一个自己写的table表格排序js插件(高效简洁)

像:jQuery的table排序插件(感觉其使用比较麻烦或不清楚其具体用法,就没有使用)、原生态js的table排序插件等,最后比较看了下——采用了一个原生态js的table排序插件,并在其基础上做了些修改,虽有些勉强或有些地方>>>详细阅读


本文标题:理解JSON:3分钟课程

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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