您好,欢迎访问一九零五行业门户网

理解JSON:3分钟课程_json

两个月前你从没听说过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, theseus
and bellerophon。)
其它类似信息

推荐信息