由于JSON对象在数据交换中越来越流行,.NET Framewok 3.5也提供了JSON对象序列化和反序列化的类,这就是System.Runtime.Serialization.Json 命名空间下的 DataContractJsonSerializer 类。利用这个类,可以实现JSON对象的序列化和反序列化。下面就是一个简单的例子:
-
<%@PageLanguage="C#"AutoEventWireup="true"%>
-
<%@ImportNamespace="System.IO"%>
-
<%@ImportNamespace="System.Runtime.Serialization"%>
-
<%@ImportNamespace="System.Runtime.Serialization.Json"%>
-
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<scriptrunat="server">
- protectedvoidButton1_Click(objectsender,EventArgse)
- {
- //反序列化成对象
-
StringJSONString="{\"Name\":\"孟宪会\",\"Url\":\"http://dotnet.aspx.cc/\"}";
-
DataContractJsonSerializerds=newDataContractJsonSerializer(typeof(MengxianHui));
-
MemoryStreamms=newMemoryStream(Encoding.Unicode.GetBytes(JSONString));//这里不能使用GB2312编码的
-
MengxianHuimxh=(MengxianHui)ds.ReadObject(ms);
- ms.Close();
-
Response.Write("<li>"+mxh.Name+""+mxh.Url);
- //对象的序列化
-
MengxianHuimxh2=newMengxianHui();
-
mxh2.Name="孟子E章";
-
mxh2.Url="http://blog.csdn.net/net_lover";
-
MemoryStreamms2=newMemoryStream();
- ds.WriteObject(ms2,mxh2);
-
JSONString = Encoding.UTF8.GetString(ms2.ToArray());
-
Response.Write("<li>"+JSONString);
- ms2.Close();
- }
-
///<summary>
- ///类对象需要标记为DataContractAttribute
-
///</summary>
- [DataContractAttribute]
- classMengxianHui
- {
- //成员需要标记为DataMember
- [DataMember]
- publicstringName{set;get;}
- [DataMember]
- publicstringUrl{set;get;}
- }
-
</script>
-
<htmlxmlns="http://www.w3.org/1999/xhtml">
-
<headid="Head1"runat="server">
-
<title>孟子E章JSON测试例子</title>
-
</head>
-
<body>
-
<formid="form1"runat="server">
-
<asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="Button"/>
-
</form>
-
</body>
-
</html>
在进行代码测试时,注意添加引用System.Runtime.Serialization和System.Runtime.Serialization.Json。
“数据协定”是在服务与客户端之间达成的正式协议,用于以抽象方式描述要交换的数据。 也就是说,为了进行通信,客户端和服务不必共享相同的类型,而只需共享相同的数据协定。 数据协定为每个参数或返回类型精确定义为进行交换而序列化(转换为 XML)哪些数据。所有 .NET Framework 基元类型(如整型和字符串型)以及某些被视为基元的类型(如 DateTime 和 XmlElement)无需做其他任何准备工作就可序列化并被视为拥有默认数据协定。 许多 .NET Framework 类型也具有现有数据协定。 必须为所创建的新复杂类型定义数据协定以便可以进行序列化。 正常情况下可通过将 DataContractAttribute 属性应用到该类型来完成该任务。 可以将此属性应用到类、结构和枚举。 然后必须将 DataMemberAttribute 属性应用到数据协定类型的每个成员,以指示这些成员为数据成员,即应进行序列化。
DataMemberAttribute 类:当应用于类型的成员时,指定该成员是数据协定的一部分并可由 DataContractSerializer 进行序列化。
DataContractAttribute 类:指定该类型要定义或实现一个数据协定,并可由序列化程序(如 DataContractSerializer)进行序列化。若要使其类型可序列化,类型作者必须为其类型定义数据协定。
分享到:
相关推荐
打开"服务器管理器"然后在右上角"管理"中点击“添加角色和功能“,一直下一步并留意选择安装.net3.5的选项然后在“确认“选项卡中,点击“指定备用源路径”,并在弹出的窗体的路径框中输入.NET Framewok 3.5的安装...
.net framewok 4.5.2 支持 x86和64位 所有版本 VS2015及以上版本支持
WinCE Framewok,3.5版本,适用于wince 6.0系统的手机,gps,手持终端等等
robot_framewok自动化测试
这是.NET4.0framewok使用VS开发的时候装机必备,很多系统已经没有4.0可以使用此安装包直接安装
Windows Install Clean Up御载工具,可以彻底解决你安装中的困扰,比如你电脑装了好多.net framewok版本,想删掉其中一个版本。
Robot_Framewok自动化测试,Robot_Framewok自动化测试Robot_Framewok自动化测试
Robot Framework 的架构是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD)。它具有易于使用的表格来组织测试过程和测试数据。本书讲解robot_framewok安装、使用等一系列操作,适合新手使用
robot_framework基础教程,比较详细,推荐
robot_framewok自动化测试.pdf
robot_framewok自动化测试-虫师,彩色版
.net 开发必备书籍,拉大jeffry richer著作,pdf格式,包含源码
虫师的作品,介绍了基于python的robot_framewok自动化测试,对于想学习的同学很有帮助
robot_framewok常用浏览器驱动 IE11 Chrome50
《Spring Framework 4.x参考文档》中文翻译
ISOIEC11770-1-2010Information technology-Security techniques-Key management Part 1 Framework
第1 章Robot Framework 介绍 第2 章Robot Framework 环境搭建 第3 章Robot Framework 入门 第4 章认识RIDE 第5 章Selenium2Library 库 第6 章DatabaseLibrary 库 第7 章AutoItLibrary 库 第8 章系统关键字开发
Open Computing Language (OpenCL) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), ...