Silverlight解析JSON数据(下)——JSON数据的解析 |
|---|
SilverCool
等级:版主
文章:70
积分:58
注册:2007年10月10日
威望:13 点
|
小 大 楼主 个性首页 QQ 邮箱 主页 发短信 加为好友 |
|
转自http://silverlighting.net/article.asp?id=152 在上一篇文章中,我们介绍了如何通过网页中的javascript来调用Silverlight中的函数,实现向Silverlight传递数据的方法。如果用户只需要向Silverlight传递几个简单的数据格式,如int,string,bool,使用上一篇文章的方法就可以了。但如果用户想传递的数据格式比较复杂,如树形结构的数据,可以使用本文介绍的的方式访问数据: 通过向Silverlight传递一个JSON字符串,再在Silverlight端解析成JSON对象。用该方法传递数据和解析数据的速度非常快,相比于Call Web Service要省事很多。 { CreateDate:'2007/10/1', Groups:[ { GroupName:'Silverlighting.net', GroupIndex:1, Members:[ { Name:'Chiqing', Age:24, isMale:true }, { Name:'Jun', Age:24, isMale:true } ] } ] } 反序列化JSON格式的字符串数据,需要构造一个与JSON对象相对应的类来承载数据。新建一个类文件Add->New Item->Class. 在类定义中根据每个JSON对象的结构构造出相对应的类,类的名称可以随意叫,但类对象的名称必须跟JSON对象的名称保持一致。 比如,对应上面给出的数据就可以将这么构造类 public class GroupClass { public string CreateDate; public SingleGroup[] Groups; } public class SingleGroup { public string GroupName; public int GroupIndex; public GroupMember[] Members; } public class GroupMember { public string Name; public int Age; public bool isMale; } 然后就是用JavaScriptSerializer来反序列化JSON字符串。方法很简单。 JavaScriptSerializer jss = new JavaScriptSerializer(); GroupClass gc = jss.Deserialize<GroupClass>(jsonData); 最后,数据的访问就可以象XMLDocument一样,一级一级往下找。比如想得到GroupName,就可以用下面的语句。 myText.Text = gc.Groups[0].GroupName; 本文的范例可以从 http://silverlighting.net/article.asp?id=152 下载 |
|
|
|
白雪公主
等级:论坛游民
文章:148
积分:163
注册:2007年10月23日
威望:3 点
|
小 大 沙发 个性首页 QQ 邮箱 主页 发短信 加为好友 |
|
|
|
|
|
|
1
2 | 10
1/1 页
|