asp.net json 与xml 的基础事例
2024-10-19 22:32:48
//json序列化和反序列化 using System.Runtime.Serialization.Json;
public static string JsonSerializer<T>(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, t);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
//替换Json的Date字符串
string p = @"\\/Date\((\d+)\+\d+\)\\/";
MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
Regex reg = new Regex(p);
jsonString = reg.Replace(jsonString,matchEvaluator);
return jsonString;
} //反序列化
public static T JsonDeserialize<T>(string jsonString)
{
//将"yyyy-MM-dd HH:mm:ss"格式的字符串转为"\/Date(1294499956278+0800)\/"格式 string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
Regex reg = new Regex(p);
jsonString = reg.Replace(jsonString, matchEvaluator);
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
} /// <summary>
/// /// 将Json序列化的时间由/Date(1294499956278+0800)转为字符串
/// /// </summary>
/// private static string ConvertJsonDateToDateString(Match m)
{
string result = string.Empty;
DateTime dt = new DateTime(,,);
dt = dt.AddMilliseconds(long.Parse(m.Groups[].Value));
dt = dt.ToLocalTime();
result = dt.ToString("yyyy-MM-dd HH:mm:ss");
return result;
}
/// <summary>
///
/// 将时间字符串转为Json时间
/// /// </summary>
/// private static string ConvertDateStringToJsonDate(Match m)
{
string result = string.Empty;
DateTime dt = DateTime.Parse(m.Groups[].Value);
dt = dt.ToUniversalTime();
TimeSpan ts = dt - DateTime.Parse("1970-01-01");
result = string.Format("\\/Date({0}+0800)\\/",ts.TotalMilliseconds);
return result;
} public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime LastLoginTime { get; set; }
} //序列化
Person p = new Person();
p.Name = "张三";
p.Age = ;
p.LastLoginTime = DateTime.Now;
string jsonString = JsonSerializer<Person>(p);
Response.Write(jsonString);
// 反序列化
string json = "{\"Age\":28,\"LastLoginTime\":\"2011-01-09 00:30:00\",\"Name\":\"张三\"}";
Person p = JsonDeserialize<Person>(json);
Response.Write("姓名:" + p.Name + "</br>");
Response.Write("年龄:" + p.Age+"</br>");
Response.Write("时间:" + p.LastLoginTime); List<Person>list=new List <Person>{
new Person{Name="张三",Age=},
new Person{Name="小白",Age=}
}; string jsonString = JsonSerializer<List< Person>>(list);
Response.Write(jsonString); Dictionary<string,string>Dic=new Dictionary<string,string>();
Dic.Add("Name", "");
Dic.Add("Age","");
string jsonString=JsonSerializer<Dictionary<string,string>>(Dic);
Response.Write(jsonString);
最新文章
- 4. 什么是AJAX
- 信息安全系统设计基础第四次实验报告20135324&;&;20135330
- Xamarin for Visual Studio 破解日志
- 深入理解Redis中的主键失效及其实现机制
- 【开源项目3】Android快速开源框架--afinal
- loadrunner java 缺少必要的导入包报错
- java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
- OpenWrt 学习网址
- openstack临时存储后端
- Spring Boot 中关于自定义异常处理的套路!
- HashMap 和 Hashtable 的 6 个区别,最后一个没几个人知道!
- Python程序,辅助微信跳一跳游戏介绍
- 012PHP基础知识——运算符(五)
- BZOJ1183 Croatian2008 Umnozak 【数位DP】*
- 送给张思漫,李志媛和王颖的C语言经典例题
- Coursera助学金申请模板
- rails 下载 send_file
- python内存相关问题
- .netcore中无法使用System.Drawing --解决方案
- Java MD5加密算法工具类