ASP.NET C#使用JavaScriptSerializer实现序列化与反序列化得到JSON
在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中。 |
C#代码:
//类
public class UserInfo
{
public Int Id { get; set; }
public String UserName { get; set; }
public DateTime Time { get; set; }
}
//代码
public void js()
{
//源数据
UserInfo info = new UserInfo();
info.Id = ;
info.UserName = "张三";
info.Time = DateTime.Now;
//初始化
System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer();
//序列化,strJson就是josn串
String strJson = jss.Serialize(info);//输出结果:{"Id":1,"UserName":"张三","Time":"\/Date(1297950721668)\/"}
//方式一:反序列化,转成model
UserInfo info2 = jss.Deserialize<UserInfo>(strJson);
//方式二:JavaScriptObject
JavaScriptObject jObject = JavaScriptConvert.DeserializeObject(strJson) as JavaScriptObject;
string UserName = jObject["UserName"].ToString();
string Time = jObject["Time"].ToString();//时间格式需要特殊处理
Time = Time.Replace("/Date(","").Replace(")/","");//替换掉/Date(),只保留里面的数字
Time = ConvertJsonDateToDateString(Convert.ToInt64(Time)); //如果josn里还包含josn,那么就需要这么写。
JavaScriptArray JsonData = (JavaScriptArray)jObject["records"];
if (JsonData.Count > )
{
for (int m = ; m < JsonData.Count; m++)
{
JavaScriptObject orderObj = (JavaScriptObject)JsonData[m];
}
}
}
/// <summary>
/// 将Json序列化的时间由/Date(1503996878)/转为字符串
/// </summary>
public string ConvertJsonDateToDateString(long Time)
{
string result = string.Empty;
DateTime dt = new DateTime(, , );
dt = dt.AddMilliseconds(Time);
dt = dt.ToLocalTime();
result = dt.ToString("yyyy/MM/dd HH:mm:ss");
return result;
}
ASP.NET C#使用JavaScriptSerializer实现序列化与反序列化得到JSON的更多相关文章
- .net MVC 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值
在.net mvc的controller中,方法返回JsonResult,一般我们这么写: [HttpPost] public JsonResult QueryFeature(string url, ...
- 使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性
"/"应用程序中的服务器错误.使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值. ...
- 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错
如题 报错提示: 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值.","Sta ...
- MVC JSON JavaScriptSerializer 进行序列化或反序列化时出错
MVC control中返回json格式数据一般都是如下格式 [HttpPost] public ActionResult CaseAudit(string name) { var data =&qu ...
- JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值
在.net mvc的controller中,方法返回JsonResult,一般我们这么写: [HttpPost] public JsonResult QueryFeature(string u ...
- Java对象序列化与反序列化一 JSON
Java对象序列化与反序列化一 JSON 1. 依赖库 jackson-all-1.6.1.jar 2. 代码 public class Student { private String nam ...
- 序列化与反序列化之JSON
在不同编程语言之间传递对象,须把对象序列化为标准格式,比如XML 但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可被所有语言读取,也可方便地存储到磁盘或者通过网络传输 JSON不 ...
- asp.net JavaScriptSerializer实现序列化和反序列化
通过JavaScriptSerializer来实现.它的名字空间为:System.Web.Script.Serialization 如果要使用它,还须添加 System.Web.Extensions库 ...
- python序列化与反序列化(json与pickle)
在python中,序列化可以理解为将python中对象的编码格式转换为json(pickle)格式的字符串,而反序列化可以 理解为将json(pickle)格式的字符串转换为python中对象的编码格 ...
随机推荐
- 应用mysql(Linux中安装)
当前 mysql 官网的安装教程,指明可以使用 yum 方式. 若在Ubuntu中安装,参考“Linux(Ubuntu)下MySQL的安装与配置”. MySQL YUM Repository MySQ ...
- Node.js Express框架
Express 介绍 Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序. 它有助于基于Node Web应用程序的快速开发.下面是一 ...
- 定义任务打印gradle下载的jar包位置
//定义任务打印gradle下载的jar包位置task showMyCache { configurations.compile.each { println it }}
- java 动态代理学习(Proxy,InvocationHandler)
前几天看到java的动态代理机制,不知道是啥玩意,然后看了看.死活不知道 invoke(Object proxy, Method m, Object[] args)种的proxy是个什么东西,放在这里 ...
- TinyMCE下载及使用
1.TinyMCE下载 官方下载网址:http://www.tinymce.com/ 简体中文语言包下载:http://www.tinymce.com/i18n/index.php?ctrl=lang ...
- Lua I/0输入输出
I/O库为文件操作提供了两种不同的模型,简单模型和完整模型.简单模型假设一个当前输入文件和一个当前输出文件,他的I/O操作均作用于这些文件.完整模型则使用显式的文件句柄,并将所有的操作定义为文件句柄上 ...
- RR模式下利用区间锁防止幻读,RC模式没有区间锁会出现幻读
Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> select * from ...
- 自己动手实现智能指针auto_ptr
面试的时候,我们经常会被问到如何自己动手实现智能指针auto_ptr.今天我就一边参考STL库中的源代码,一边将auto_ptr的实现敲一遍. auto_ptr归根到底是一个模版类,那么这个类要实现哪 ...
- FreeMarker-TemplateLoader
Java中不乏优秀的模板引擎,Velocity,mvel,FreeMarker等.在构建框架的时候,通常可以拿来即用,但我们需要控制它.最近需要一个数据准备的框架,便选择了FreeMarker,Fre ...
- 译文链接:http://www.codeceo.com/article/10-truth-programmer-must-know.html
大多数时候,写代码都是挺有意义的一件事,不光能增加经验值,解决难题的时候还特别爽.耐心.毅力.执着,再加上正确的工具——只要有它们的亲密协作,优雅.漂亮的代码就是手到擒来的事儿. 但是,紧接着拙劣的资 ...