- 浏览: 1525540 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (525)
- SEO (16)
- JAVA-EE-Hibernate (6)
- JAVA-EE-Struts (29)
- JAVA-EE-Spring (15)
- Linux (37)
- JAVA-SE (29)
- NetWork (1)
- CMS (14)
- Semantic Research (3)
- RIA-Flex (0)
- Ajax-Extjs (4)
- Ajax-Jquery (1)
- www.godaddy.com (0)
- SSH (34)
- JavaScript (6)
- SoftwareEngineer (9)
- CMMI (0)
- IDE-Myeclipse (3)
- PHP (1)
- Algorithm (3)
- C/C++ (18)
- Concept&Items (2)
- Useful WebSite (1)
- ApacheServer (2)
- CodeReading (1)
- Socket (2)
- UML (10)
- PowerDesigner (1)
- Repository (19)
- MySQL (3)
- SqlServer (0)
- Society (1)
- Tomcat (7)
- WebService (5)
- JBoss (1)
- FCKeditor (1)
- PS/DW/CD/FW (0)
- DesignPattern (11)
- WebSite_Security (1)
- WordPress (5)
- WebConstruction (3)
- XML|XSD (7)
- Android (0)
- Project-In-Action (9)
- DatabaseDesign (3)
- taglib (7)
- DIV+CSS (10)
- Silverlight (52)
- JSON (7)
- VC++ (8)
- C# (8)
- LINQ (1)
- WCF&SOA (5)
- .NET (20)
- SOA (1)
- Mashup (2)
- RegEx (6)
- Psychology (5)
- Stock (1)
- Google (2)
- Interview (4)
- HTML5 (1)
- Marketing (4)
- Vaadin (2)
- Agile (2)
- Apache-common (6)
- ANTLR (0)
- REST (1)
- HtmlAnalysis (18)
- csv-export (3)
- Nucth (3)
- Xpath (1)
- Velocity (6)
- ASP.NET (9)
- Product (2)
- CSS (1)
最新评论
-
lt26w:
理解成门面模式应该比较容易明白吧
FacadePattern-Java代码实例讲解 -
lt26w:
看下面的例子比较明白.
FacadePattern-Java代码实例讲解 -
javaloverkehui:
这也叫文档,别逗我行吗,也就自己看看。
HtmlCleaner API -
SE_XiaoFeng:
至少也应该写个注释吧。
HtmlCleaner API -
jfzshandong:
...
org.springframework.web.filter.CharacterEncodingFilter 配置
还是原文看的比较清楚。http://www.cnblogs.com/wsdj-ITtech/archive/2009/08/27/1554787.html
JSON是一种轻量级的数据传输类型,它可以通过序列化把一个简单对象转换为一个简单的字符串,在网络中进行传输,然后在客户端进行反序列化,得到原始对象.功能上和XML差不多,只是它的体积小,在客户端解析方便,所以被广泛使用.
我们可以使用Silverlight提供的三个类来完成JSON数据的传递和接收。它们是:
2 、JsonObject (位于System.Json,将JSON数据流转换成为可读写的对象)
3 、JsonArray (位于System.Json, 对JSON数据流转换成为JsonObject数组形式,可支持LINQ查询)
注:
如果要引用System.Runtime.Serialization.Json名空间里的Json,则必须也引用System.ServiceModel,否则Json会无法使用。在本例中,我们将使用它来进行示例。
下面我们一起来学习在Silverlight中如何从服务器端向客户端传递Json数据。
新建一个Silverlight应用程序。命名为:SLJson
(一)准备工作
在这里,我们完成三种情况的Json数据传递。
2 、Customers类,它是Person类的一个List。
3 、一个PersonT类(它包含另一个类 Address)
我们要传递这三种情况的类对象实例到客户端并显示出来。
所以,在此,我们首先要在服务器端和客户端分别建立上面的三个类。
Person类
服务器端代码定义如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization; // 要引用System.Runtime.Serialization.Dll才能使用[DataContract]与[DataMember]属性
namespace SLJson.Web
{
[DataContract]
public class Person
{
[DataMember]
public string Name { get ; set ; }
[DataMember]
public int Age { get ; set ; }
[DataMember]
public string Address { get ; set ; }
}
}
客户端代码定义如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SLJson
{
public class Person
{
public string Name { get ; set ; }
public int Age { get ; set ; }
public string Address { get ; set ; }
}
}
Customers类
服务器端代码定义如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization; // 要引用System.Runtime.Serialization.Dll才能使用[DataContract]与[DataMember]属性
namespace SLJson.Web
{
[DataContract]
public class Customers
{
[DataMember]
public List < Person > Persons { get ; set ; }
}
}
客户端代码定义如下:
PersonT类
<!-- <br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->using
System;
using
System.Net;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Documents;
using
System.Windows.Ink;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Animation;
using
System.Windows.Shapes;
using
System.Collections.Generic;
//
要引入此空间以使用List
namespace
SLJson
{
public
class
Customers
{
public
List
<
Person
>
Persons {
get
;
set
; }
}
}
服务器端代码定义如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization; // 要引用System.Runtime.Serialization.Dll才能使用[DataContract]与[DataMember]属性
namespace SLJson.Web
{
[DataContract]
public class PersonT
{
[DataMember]
public string Name { get ; set ; }
[DataMember]
public int Age { get ; set ; }
[DataMember]
public Address Address { get ; set ; }
}
}
客户端代码定义如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SLJson
{
public class PersonT
{
public string Name { get ; set ; }
public int Age { get ; set ; }
public Address Address { get ; set ; }
}
}
PersonT类内含的Address类
服务器端代码定义如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization; // 要引用System.Runtime.Serialization.Dll才能使用[DataContract]与[DataMember]属性
namespace SLJson.Web
{
[DataContract]
public class Address
{
[DataMember]
public string country { get ; set ; }
[DataMember]
public string city { get ; set ; }
}
}
客户端代码定义如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SLJson
{
public class Address
{
public string country { get ; set ; }
public string city { get ; set ; }
}
}
至此,我们的应用程序如下图:
(二) 实现Json数据的传递。
1、建立用户界面
Page.xaml代码如下:
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
xmlns:x = " http://schemas.microsoft.com/winfx/2006/xaml "
Width = " 400 " Height = " 400 " >
< StackPanel Width = " 400 " Height = " 400 " Background = " Wheat " >
< TextBlock Text = " 获取的数据如下 " TextAlignment = " Center " Foreground = " Red " Margin = " 2 " FontSize = " 16 " ></ TextBlock >
< ListBox x:Name = " lstReturn " Width = " 350 " Height = " 220 " Margin = " 6 " ></ ListBox >
< Button x:Name = " btnGetPerson " Width = " 200 " Height = " 25 " Content = " 获取Person类数据 " Margin = " 8 " Click = " btnGetPerson_Click " ></ Button >
< Button x:Name = " btnGetPersonT " Width = " 200 " Height = " 25 " Content = " 获取PersonT类数据 " Margin = " 8 " Click = " btnGetPersonT_Click " ></ Button >
< Button x:Name = " btnGetCustomer " Width = " 200 " Height = " 25 " Content = " 获取Customer类数据 " Margin = " 8 " Click = " btnGetCustomer_Click " ></ Button >
</ StackPanel >
</ UserControl >
用户界面如下图:
2、服务器端:我们新建一个Handler(在本例命名为:CustomerJsonHandler.ashx)专门负责响应客户端发来的请求,在服务器端生成Json格式的结果数据并返回给客户端。
2.1、生成将要传递的类对象实例
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 获取需要返回的数据Person #region 获取需要返回的数据Person
public Person GetRetDataPerson()
{
Person PWang = new Person() { Name = " WangXiangMin " , Age = 25 , Address = " China " } ;
return PWang;
}
#endregion
获取需要返回的数据Customers(Person类数组) #region 获取需要返回的数据Customers(Person类数组)
public Customers GetRetDataCustomers()
{
Customers myCustomer = new Customers();
Person PWang = new Person() { Name = " WangXiangMin " , Age = 25 , Address = " China " } ;
Person PJack = new Person() { Name = " Jack " , Age = 18 , Address = " USA " } ;
Person PTom = new Person() { Name = " Tom " , Age = 32 , Address = " OZ " } ;
List < Person > MyPersonList = new List < Person >
{
PWang,
PJack,
PTom
} ;
myCustomer.Persons = MyPersonList;
return myCustomer;
}
#endregion
获取需要返回的数据PersonT(其属性Address是另一个类Address) #region 获取需要返回的数据PersonT(其属性Address是另一个类Address)
public PersonT GetRetDataPersonT()
{
Address HongKongAddress = new Address() { city = " HongKong " , country = " China " } ;
PersonT PWang = new PersonT() { Name = " WangXiangMin " , Age = 25 , Address = HongKongAddress} ;
return PWang;
}
#endregion
2.2、并把它们序列化成Json格式的数据
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> // 定义一个字符串存放序列化后的结果
string strJSON = "" ;
switch (retType)
{
// 返回Person类
case " Person " : strJSON = SerializeToJsonString(GetRetDataPerson()); break ;
// 返回PersonT类
case " PersonT " : strJSON = SerializeToJsonString(GetRetDataPersonT()); break ;
// 返回Person类数组Customer
case " Customer " : strJSON = ToJson < Customers > (GetRetDataCustomers()); break ;
}
2.3、向客户端传递
context.Response.Write(strJSON);
服务器端CustomerJsonHandler.ashx全部代码如下:
<!-- <br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;
using System.Runtime.Serialization.Json; // 需要引用 System.ServiceModel.DLL
http://www.c
发表评论
-
SilverLight异步调用WebService出错!
2010-01-19 12:58 5394SilverLight异步调用WebService出错! ... -
Silverlight播放器 C#语言
2010-01-13 13:30 3292这段时间研究Silverlight中的MediaElement ... -
使用Silverlight,制作简单播放器的一点点心得。
2010-01-13 13:28 3646首先介绍什么是Silverligh ... -
初探silverlight--简易播放器
2010-01-13 13:28 1508<UserControl xmlns=" ... -
新开发的silverlight视频播放器,
2010-01-13 13:21 4476http://www.chenjiliang.com/Arti ... -
Silverlight教程第四部分:使用 Style 元素更好地封装观感
2010-01-12 22:11 1263Silverlight教程第四部分 ... -
Silverlight Carousel: Creating a Silverlight Control Displays Picture in an Inte
2010-01-12 18:18 1885http://www.codeproject.com/KB/s ... -
Using projection to build a 3D carousel in Silverlight 3
2010-01-12 18:14 2323http://ww ... -
CoverFlow – built using Silverlight 3's 'Projection' feature
2010-01-12 18:11 1881CoverFlow – built using Silver ... -
silverlight动画播放停止重播等控制
2010-01-06 12:38 1379ani.begin() ani.stop(); ani. ... -
silverlight速学范例100
2010-01-06 12:37 1269silverlight速学范例100 ... -
Silverlight 中的 HTTP 通信和安全
2010-01-04 23:43 2001Silverlight 中的 HTTP 通信和安全 < ... -
Visual Studio的 诡异bug(mscorlib无法引用)引发的对话 and Silverlight XAML 构造出错
2010-01-04 09:25 4118... -
Silverlight常见问题及解决方法
2009-12-22 14:06 1268Silverlight常见问题及解决方法 ... -
网上常用免费webservice 查询
2009-12-22 12:47 4592网上常用免费webservice 查询 2008-11 ... -
必应 Bing 新特性之最新文章, Wolfram|Alpha 整合, 天气搜索等已推出
2009-12-21 23:33 1516必应 Bing 增加了一项“最新文章”的搜索结果特性,例如下图 ... -
下载silverlight官网的全部视频教程
2009-12-21 23:30 14846Silverlight官网提供了许 ... -
Silverlight客户端和WCF服务器端共享类库
2009-12-21 23:21 1825在Silverlight企业级项目开发中,访问数据库是很常见的 ... -
Create a Silverlight Europe weather map
2009-12-21 22:55 1581I don’t generally fi ... -
必应地图图片系统(Tile System)之二
2009-12-21 22:53 2313【坐标系和地图图片编 ...
相关推荐
此下载文件的版本:V5.150428.0 用于64位系统 Microsoft Silverlight是一个跨浏览器的、跨平台的插件,为网络带来下...Silverlight可以对运行在Mac或Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。
在升级silverlight 或者卸载的时候 提示找不到某个某个临时目录下的原始安装文件 从而无法卸载或升级新版本 微软公司真是没有考虑周全 谁会保存原始的临时文件目录 通常在某个temp目录中 中的原始安装包文件呢 ...
开发者可以通过查看这个Demo,学习如何将这三个技术有效地结合在一起,创建出一个可扩展、可维护且易于测试的Web应用程序。 在这个示例中,可能会有以下几个关键部分: 1. **模型层(Model)**:包含业务实体和...
Silverlight Socket +Asp.net多人聊天室源码版,主要研究Socket通信,有程序包括客户端和服务端。 服务端:实例化Socket, 绑定, 监听, 连接, 接收数据, 发送数据等…… 客户端:实例化Socket, 指定服务端地址,...
通过学习和分析这些源代码,开发者可以深入理解如何在Silverlight环境中实现高效的文件操作,包括如何处理大文件上传、优化用户界面响应,以及如何与服务器进行安全的数据交换。此外,还可以了解到如何在Silverlight...
SilverLight入门教程是针对初学者的一份详尽指南,旨在帮助开发者理解并掌握SilverLight技术,特别是在ASP.NET运行环境中如何有效地运用。SilverLight是一种由微软开发的富互联网应用程序(RIA)平台,它允许开发者...
本文主要介绍了如何反编译Silverlight项目,以供学习和研究之用,而不是鼓励非法盗取他人代码。Silverlight是一种由Microsoft开发的RIA(富互联网应用)技术,它允许开发者创建交互式的、图形丰富的Web应用程序。在...
在探讨如何在Silverlight中使用OpenFileDialog浏览本地图片这一主题时,我们首先需要理解Silverlight的基本概念以及OpenFileDialog的功能和作用。Silverlight是Microsoft推出的一款跨浏览器、跨平台的插件,它允许...
### Silverlight概述与关键技术知识点 #### 一、Silverlight简介 **Silverlight**是微软推出的一项跨...尽管随着时间的发展,Silverlight已经不再是最新的技术,但它在当时的创新性和影响力仍然值得我们学习和借鉴。
在Silverlight应用开发中,有时我们可能需要对默认的进度条控件进行自定义,以满足界面设计或功能上的特殊需求。"Silverlight 自定义进度条"是一个关于如何在Silverlight环境中创建美观且功能丰富的进度指示器的主题...
通过学习和实践这些源代码,开发者不仅能理解WPF和Silverlight的核心概念,还能掌握如何在实际项目中运用这些技术,提升自己的开发能力。同时,这些实例也可以作为进一步探索这两个框架的起点,例如结合MVVM模式进行...
"Silverlight_With_WCF"这个压缩包文件很可能包含了实现WCF和Silverlight整合的示例代码,包括服务端的WCF服务实现、客户端的Silverlight应用代码以及相关的配置文件。通过研究这些示例,你可以更好地理解如何在实际...
Silverlight_Bing_Maps地图插件安装-CSDN
《使用Silverlight编写...尽管现在Silverlight已逐渐淡出舞台,但其在游戏开发领域的实践经验仍值得学习和借鉴。通过理解这些游戏的实现机制,我们可以更好地理解Silverlight的技术特性和在富互联网应用中的应用价值。
EVCombo for Silverlight套包是创建Silverlight程序所需的经典控件组合,涵盖了用户界面,图表,报表功能,可全面应用于Web程序的开发,不仅可以帮助用户创建功能丰富且视觉效果绚丽的用户界面,而且强大的图表报表...
silverlight构建的图形化流程设计器 该流程设计器应该具有以下的特点: 图形化的方式显示流程 支持拖拽创建和修改流程 导出图形对应的xml描述文件 根据流程xml描述文件显示流程图 活动类主要实现主要动作(函数...