什么是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定义更详细的结构,使它具有FirstName和LastName:
{"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的使用有点认识了,归纳为以下几点:
*对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
*数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
*值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
*字符串和数字的定义和C或Java基本一致。
JSON-RPC-Java类库:
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架.利用它内置的一个轻级量JSON-RPCJavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat.
浙公网安备 33010602011771号