码迷,mamicode.com
首页 > Web开发 > 详细

json反序列话 时间格式

时间:2015-10-27 19:57:09      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

namespace Fjc.DBUtility
{
public static class JsonHerper
{

/// <summary>
/// Json序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
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;
}

/// <summary>
/// Json反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonString"></param>
/// <returns></returns>
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}";
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(1970, 1, 1);
dt = dt.AddMilliseconds(long.Parse(m.Groups[1].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[0].Value);
dt = dt.ToUniversalTime();
TimeSpan ts = dt - DateTime.Parse("1970-01-01");
result = string.Format("///Date({0}+0800)///", ts.TotalMilliseconds);
return result;
}


public static object GridData(int Code, string Msg, int total, string objects, string objects2)
{
//var jsonData = new
//{
// Total = total,
// Code = Code,
// Msg = Msg,
// Result = objects
//};

string jsonStr ="";

jsonStr += "{\"Total\":" + "\"" + total + "\"";

jsonStr += ",\"Msg\":" + "\"" + Msg + "\"";

jsonStr += ",\"Code\":" + "\"" + Code + "\"";

jsonStr += ",\"Result\":" + objects;

if (!string.IsNullOrEmpty(objects2))
{
jsonStr += ",\"ImgList\":" + objects2;
}

// jsonStr += ",\"Result\":" + objects;

jsonStr += "}";

return jsonStr;


}


/// <summary>
/// 转换制表符
/// </summary>
/// <param name="resultJson"></param>
/// <returns></returns>
public static string GetJsonErl(string resultJson)
{

string aa = resultJson.Replace("\\u000d\\u000a", "\r\n");

return aa;
}


}

 

 

 


}

json反序列话 时间格式

标签:

原文地址:http://www.cnblogs.com/noert/p/4914949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!