学习JSON:认识JSON+jayrock

来源:互联网 发布:rpc java php 编辑:程序博客网 时间:2024/05/18 22:08

JavaScript Object Notation(或 JSON),即一种开放式和基于文本的数据交换格式,它提供了一种标准数据交换格式,更适用于 Ajax 样式的 Web 应用程序。

JSON: http://www.json.org/

Jayrock是一个LGPL的开源的软件,实现了JSONJSON-RPC,支持微软ASP.NET框架。

JSON+Jayrock+ASP.NET Quick Start :http://jayrock.berlios.de/#quick-start

JavaScript 和 .NET 中的 JavaScript Object Notation (JSON) 简介

特点:
简单格式化的数据交换
2、易于人们的读写习惯
3、易于机器的分析和运行
4、JavaScript中使用eval()方法可以很方便的读取 JSON数据
5、JSON支持的语言ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.

语法分析:
JSON可以用于封装数据,它是一种类似于C语言家族的语言,所以能很容易被C语言家族的语言分析
1、对象object包含在一对{}中,如:

2、对象的属性member使用[string : value]成对的表示,属性与属性之间用逗号隔开,如:
string : value , string : value
3、数组array包含在一对[]中,如:
[ elements ]
4、元素elements与元素之间用逗号隔开
elements , elements
5、元素值可具有的类型:
string, number, object, array, true, false, null
例子:
JSON
{"menu": {
"id": "file",
"value": "File:",
"popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
}
}}
XML
<menu id="file" value="File" >
<popup>
    <menuitem value="New" onclick="CreateNewDoc()" />
    <menuitem value="Open" onclick="OpenDoc()" />
    <menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>

 
JSON VS XML 
  ·可读性
  JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
  ·可扩展性
  XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
  ·编码难度
  XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。
  ·解码难度
  XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。
  ·流行度

  XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous JavaScript and JSON)了。