博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET C#使用JavaScriptSerializer实现序列化与反序列化得到JSON
阅读量:7114 次
发布时间:2019-06-28

本文共 2084 字,大约阅读时间需要 6 分钟。

最 近项目开始比较多的使用JSON来传递数据了,首先介绍下什么是JSON吧,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

在ASP.NET AJAX中,客户端的序列化与反序列能力由Sys.Serialization.JavaScriptSerializer类的serialize和 deserialize两个静态方法提供。在服务器端,所有的序列化与反序列化能力,包括类型之间的转换,对于开发人员来说都是由 JavaScriptSerializer类的几个方法实现的。

在JavaScriptSerializer中,我们可以看到下面可以使用的方法或者构造函数,它们都是实例方法:
Member Description
JavaScriptSerializer() 构造函数,用于创建一个新的JavaScriptSerializer对象,不指定JavaScriptTypeResolver
JavaScriptSerializer(JavaScriptTypeResolver) 构造函数,用于创建一个新的JavaScriptSerializer对象,并使用指定的JavaScriptTypeResolver来映射特定类型与标识字符串。
ConvertToType<T>(Object) 将给定对象转化成类型T。
Deserialize<T>(String) 将JSON字符串转化为类型T。
DeserializeObject(String) 将JSON字符串转化为一个对象。
MaxJsonLength 获取或者设置序列化时能够接受的JSON字符串的最大长度。
RecursionLimit 获取或者设置在反序列化JSON字符串时递归的最大深度。
RegisterConverters(IEnumerable<JavaScriptConverter>) 注册序列化过程中使用的JavaScriptConveter对象。
Serialize(Object) 将一个对象序列化成JSON字符串。
Serialize(Object, StringBuilder) 将一个对象序列化到一个StringBuilder中。

这里我只提供一个简单的demo看看效果,后面我再陆续介绍吧,首先创建一个用户实体类:

public class UserInfo  {
public Int32 Id { get; set; }
public String UserName { get; set; }
public DateTime Time { get; set; }
public bool Gender { get; set; }  }
接下来在Page_Load里面写下面代码。
protected void Page_Load(object sender, EventArgs e)
{
UserInfo info = new UserInfo();
info.Id = 1;
info.UserName = "猫博 http://maoblog.com";
info.Time = DateTime.Now;
info.Gender = true;
System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
String strJson = jss.Serialize(info);
Response.Write(strJson);
//输出结果:
//{"Id":1,"UserName":"猫博 http://maoblog.com","Time":"\/Date(1297950721668\/","Gender":true}
UserInfo info2 = jss.Deserialize
(strJson);
Response.Write(String.Format("
{0}
{1}
{2}
{3}", info2.Id, info2.UserName, info2.Time, info2.Gender));
Response.End();
//结果:      //1      //猫博 http://maoblog.com      //2011/2/17 14:00:29      //True  }

转载地址:http://qughl.baihongyu.com/

你可能感兴趣的文章
monolog使用
查看>>
【AtCoder010】B - Boxes(差分)
查看>>
三种 Failover 之 Client-Side Connect time Failover、Client-Side TAF、Service-Side TAF
查看>>
ES 相似度算法设置(续)
查看>>
46:八进制到十进制
查看>>
JAVA4种线程池的使用
查看>>
MonkeyRunner 模块
查看>>
ASP.NET Core实现OAuth2.0的AuthorizationCode模式
查看>>
Atitit tomcat在linux服务器的启动与其他
查看>>
C++/Php/Python 语言执行shell命令
查看>>
Oracle表空间维护总结
查看>>
12C -- ORA-01017
查看>>
约瑟夫环问题
查看>>
Compile、Make和Build的区别(as make, build, clean, run)
查看>>
介绍三款串口监控工具:Device Monitoring Studio,portmon,Comspy
查看>>
Bulk Load-HBase数据导入最佳实践
查看>>
sqlServer的主键只能自增不能手动增加
查看>>
maven常用命令介绍
查看>>
【树莓派】树莓派上刷android系统
查看>>
J2EE之Servlet初见
查看>>