/// <summary>
/// 转换Json格式帮助类
/// </summary>
public class JsonHelper
{
#region 利用 Newtonsoft.Json 转JSON
#region 简化命名函数
public static string ToJson(object o)
{
return SerializeObject(o);
}
public static T ToObject<T>(string json) where T : class
{
return DeserializeJsonToObject<T>(json);
}
public static T ToObject<T>(string json, T o)
{
return DeserializeAnonymousType<T>(json, o);
}
public static List<T> ToList<T>(string json) where T : class
{
return DeserializeJsonToList<T>(json);
}
#endregion
#region 序列化命名函数
/// <summary>
/// 将对象序列化为JSON格式
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string SerializeObject(object o)
{
return JsonConvert.SerializeObject(o);
}
/// <summary>
/// 解析JSON字符串生成对象实体
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
/// <returns>对象实体</returns>
public static T DeserializeJsonToObject<T>(string json) where T : class
{
try
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
T t = o as T;
return t;
}
catch
{
return default(T);
}
}
/// <summary>
/// 解析JSON数组生成对象实体集合
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
/// <returns>对象实体集合</returns>
public static List<T> DeserializeJsonToList<T>(string json) where T : class
{
try
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
List<T> list = o as List<T>;
return list;
}
catch
{
return new List<T>();
}
}
/// <summary>
/// 反序列化JSON到给定的匿名对象.
/// </summary>
/// <typeparam name="T">匿名对象类型</typeparam>
/// <param name="json">json字符串</param>
/// <param name="anonymousTypeObject">匿名对象</param>
/// <returns>匿名对象</returns>
public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
{
return JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
}
#endregion
#endregion
}