DVBBS ASP.NET论坛官方 注册  |   登录  |   搜索  |  帮助
DVBBS ASP.NET论坛官方  →  技术交流区  →  Silverlight交流  →  Silverlight解析JSON数据(下)——JSON数据的解析
共有 581 人关注过本帖
上一主题 | 下一主题  

Silverlight解析JSON数据(下)——JSON数据的解析

我不在线哦! SilverCool 积分:58 等级:版主 文章: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要省事很多。

Silverilght支持JSON格式数据的序列化和反序列化,主要使用到的方法是Deserilize
首先简单介绍一下JSON数据格式。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language。

接下来就从数据讲起吧,假如下面是我们的JSON字符串数据,为了便于阅读,我将格式调整了一下。这里顺便介绍一个在线将JSON字符串格式化的工具“JSON Formater” http://www.curiousconcept.com/jsonformatter/

{
   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 下载
2007-10-31 0:02:54   举报   Top
我正在线哦! 白雪公主 积分:163 等级:论坛游民 文章:148 积分:163 注册:2007年10月23日 威望:3 点   沙发 个性首页 QQ 邮箱 主页 发短信 加为好友
[em116][em114]
2008-2-17 17:24:55   举报   Top
1  2 | 10    1/1 页