什么是json:

JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。

 

JSON建构于两种结构:

 

*“名称/值”对的集合(Acollection of name/valuepairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。

 格式:{key:value,key:value,...}

*值的有序列表(Anordered list of values)。在大部分语言中,它被理解为数组(array)。

 格式:[value,value,....] (注意:数组是[],字符串是{})

 

JSON使用:

JSON以一种特定的字符串形式来表示JavaScript对象。如果将具有这样一种形式的字符串赋给任意一个JavaScript变量,那么该变量会变成一个对象引用,而这个对象就是字符串所构建出来的.

比如:

这里假设我们需要创建一个User对象,并具有以下属性

*用户ID

*用户名

*用户Email

 

可以使用以下JSON形式来表示User对象:

{"UserID":11,"Name":"Truly", "Email":"zhuleipro◎hotmail.com"};

 

然后如果把这一字符串赋予一个JavaScript变量,那么就可以直接使用对象的任一属性了。

完整代码:

<script>

varUser = {"UserID":11, "Name":"Truly","Email":"zhuleipro◎hotmail.com"};

alert(User.Name);

</script>

 

实际使用时可能更复杂一点,比如我们为Name定义更详细的结构,使它具有FirstNameLastName

{"UserID":11,"Name":{"FirstName":"Truly","LastName":"Zhu"},"Email":"zhuleipro◎hotmail.com"}

完整代码:

<script>

varUser = {"UserID":11,"Name":{"FirstName":"Truly","LastName":"Zhu"},"Email":"zhuleipro◎hotmail.com"};

alert(User.Name.FirstName);

</script>

 

现在我们增加一个新的需求,我们某个页面需要一个用户列表,而不仅仅是一个单一的用户信息,那么这里就需要创建一个用户列表数组。

下面代码演示了使用JSON形式定义这个用户列表:

[{"UserID":11,"Name":{"FirstName":"Truly","LastName":"Zhu"},"Email":"zhuleipro◎hotmail.com"}, {"UserID":12,"Name":{"FirstName":"Jeffrey","LastName":"Richter"},"Email":"xxx◎xxx.com"}, {"UserID":13,"Name":{"FirstName":"Scott","LastName":"Gu"},"Email":"xxx2◎xxx2.com"} ]

 

<script>

varUserList = [ {"UserID":11,"Name":{"FirstName":"Truly","LastName":"Zhu"},"Email":"zhuleipro◎hotmail.com"}, {"UserID":12,"Name":{"FirstName":"Jeffrey","LastName":"Richter"},"Email":"xxx◎xxx.com"}, {"UserID":13,"Name":{"FirstName":"Scott","LastName":"Gu"},"Email":"xxx2◎xxx2.com"} ];

alert(UserList[0].Name.FirstName);

</script>

 

事实上除了使用"."引用属性外,我们还可以使用下面语句:

alert(UserList[0]["Name"]["FirstName"]);或者alert(UserList[0].Name["FirstName"]);

 

现在读者应该对JSON的使用有点认识了,归纳为以下几点:

*对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。

*数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。

*值可以是引号里的字符串、数字、truefalsenull,也可以是对象或数组。这些结构都能嵌套。

*字符串和数字的定义和CJava基本一致。

 

JSON-RPC-Java类库:

 

JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架.利用它内置的一个轻级量JSON-RPCJavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat.

posted on 2010-12-15 23:27  菊次郎  阅读(122)  评论(0)    收藏  举报