Json相关技术
AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML)以后会被改为Ajaj(Asynchronous JavaScript and object notation)这个很难说啊!!
说到JSon,那当然要提及xml,XML是进行数据交换的标准方式这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了Web services的同义词。我们知道AJAX技术能够使得每一次请求更加迅捷,对于每一次请求返回的不是整个页面,也仅仅是所需要返回的数据。然而,由于Ajax和REST技术的出现影响了应用程序架构,这迫使人们开始寻求`XML的替代品。
JSON的优点
- 轻量级的数据交换格式
- 人们读写更加容易
- 易于机器的解析和生成
- 能够通过JavaScript中eval()函数解析JSON
- JSON支持多语言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.
JSON语法是一种用于传输和生成数据的协定,很类似于C家族的语言,所以很容易被C家族的语言所解析。
对象:对象包含再{}之间
属性:采用Key-Value对来表示。属性之间使用逗号分开。 string : value
数组:数组存放再[]之间 [ elements ]
元素:元素之间用逗号分开
值:值可以是字符串,数字,对象,数组,true,false,null
<?xml version='1.0' encoding='UTF-8'?>
<card>
<fullname>Sean Kelly</fullname>
<org>SK Consulting</org>
<emailaddrs>
<address type='work'>http://www.cnblogs.com/smallcup/</address>
<address type='home' pref='1'>http://www.cnblogs.com/smallcup/</address>
</emailaddrs>
<telephones>
<tel type='work' pref='1'>+1 214 555 1212</tel>
<tel type='fax'>+1 214 555 1213</tel>
<tel type='mobile'>+1 214 555 1214</tel>
</telephones>
<addresses>
<address type='work' format='us'>1234 Main St
Springfield, TX 78080-1216</address>
<address type='home' format='us'>5678 Main St
Springfield, TX 78080-1316</address>
</addresses>
<urls>
<address type='work'>http://www.cnblogs.com/smallcup/</address>
<address type='home'>http://www.cnblogs.com/smallcup/</address>
</urls>
</card>
而使用JSON来表达,上面的形式将变成如下模样:
{
"fullname": "Sean Kelly",
"org": "SK Consulting",
"emailaddrs": [
{"type": "work", "value":http://www.cnblogs.com/smallcup/"},
{"type": "home", "pref": 1, "value": "http://www.cnblogs.com/smallcup/"}
],
"teleph [
{"type": "work", "pref": 1, "value": "+1 214 555 1212"},
{"type": "fax", "value": "+1 214 555 1213"},
{"type": "mobile", "value": "+1 214 555 1214"}
],
"addresses": [
{"type": "work", "format": "us",
"value": "1234 Main StnSpringfield, TX 78080-1216"},
{"type": "home", "format": "us",
"value": "5678 Main StnSpringfield, TX 78080-1316"}
],
"urls": [
{"type": "work", "value": "http://www.cnblogs.com/smallcup/"},
{"type": "home", "value": "http://www.cnblogs.com/smallcup/"}
]
}
正如你所见,JSON也提供了一种具有嵌套数据元素的结构,就象XML一样。与XML一样,JSON也是基 于文本的,且它们都使用Unicode编码,且其与XML一样具有可读性。主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法 的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。一个JSON文档的每一个实例都负责描述一个对象—具体的描述是通过使用嵌套的对象,数组,字符串,数字,布尔值或null值来实现的。
下面比较一下两者的平衡度:
- 可读性 JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
- 可扩展性 XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
- 编码难度 XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多。
- 解码难度 XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
- 流行度 XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域。
JSON的基本思想是,把自己实现为JavaScript(和Pyth 2.0开发中XML数据操作的主要替代者)。任何开发者,无论是开发标准桌面应用程序还是开发Web应用程序,只要使用XML数据处理,都会欣赏JSON的简易特征。最后祝愿大家能更好的理解使用Json。
(说明:本文由作者自己通过自己的学习和对各位前辈的总结写的这边文章)