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中对象的编码格 ...
随机推荐
- Explain语法
EXPLAIN SELECT -- 变体: 1. EXPLAIN EXTENDED SELECT -- 将执行计划"反编译"成SELECT语句,运行SHOW WARNINGS 可得 ...
- [BZOJ 3207] 花神的嘲讽计划Ⅰ【Hash + 可持久化线段树】
题目链接:BZOJ - 3207 题目分析 先使用Hash,把每个长度为 k 的序列转为一个整数,然后题目就转化为了询问某个区间内有没有整数 x . 这一步可以使用可持久化线段树来做,虽然感觉可以有更 ...
- Best Pratices——Make the Web Faster
https://developers.google.com/speed/ PageSpeed Rules Optimizing caching — keeping your application's ...
- struts配置时遇到的几个问题
1. struts在配置文件的时候,如果package包继承为 :extends="json-default" ,那么项目中要引入struts2-json-plugin-xxx.j ...
- 【HDOJ】3088 WORM
状态压缩+BFS. /* 3088 */ #include <iostream> #include <cstdio> #include <cstring> #inc ...
- OpenCV 2.4.3在VS2010上的应用
一.下载和安装: 1.OpenCV 2.4.3下载:http://www.opencv.org.cn/index.php/Download#Version_2.4.3 2.下载完成后,解压 ...
- bzoj2561
对于新加入的边,必须要既可能在最小生成树上也可能在最大生成树上我们先对于最小生成树考虑根据kruskal的理论,不难发现,u--v 长度为L的边可能出现在最小生成树上就是说删边剩下的比L小的边一定不能 ...
- ZKW费用流修正
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #inc ...
- CH Round #48 - Streaming #3 (NOIP模拟赛Day1)
A.数三角形 题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛D ...
- CF 85D Sum of Medians (五颗线段树)
http://codeforces.com/problemset/problem/85/D 题意: 给你N(0<N<1e5)次操作,每次操作有3种方式, 1.向集合里加一个数a(0< ...