json格式转换为对象
/// <summary>
/// json帮助 JsonConvert命名空间为Newtonsoft.Json ,DataContractJsonSerializer命名空间为System.Runtime.Serialization.Json
/// </summary>
public class JsonHelper
{
/// <summary>
/// json序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static string NJsonSerializer<T>(T t)
{
return JsonConvert.SerializeObject(t);
}
public static T NJsonDeserialize<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
/// <summary>
/// 反序列化成匿名对象
/// </summary>
/// <param name="input">json格式</param>
/// <param name="type">匿名对象eg: new{name=string.empty,age=new int()}</param>
/// <returns>返回匿名对象,用dynamic接受</returns>
public static object DeserializeAnonymousType(string input, object type)
{
return JsonConvert.DeserializeAnonymousType(input,type);
}
/// <summary>
/// 反序列化成匿名对象
/// </summary>
/// <param name="input">json格式</param>
/// <returns>JObject对象,通过索引值获取this[string]</returns>
public static JObject DeserializeAnonymousType(string input)
{
return JsonConvert.DeserializeObject(input) as JObject;
}
/// <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();
return jsonString;
}
/// <summary>
/// JSON反序列化
/// </summary>
///
public static T JsonDeserialize<T>(string jsonString)
{
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;
}
}
浙公网安备 33010602011771号