public class JsonHelper
{
/// <summary>
/// obj转换成json 的string类型
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string JavaScriptSerialize<T>(T obj)
{
return JsonConvert.SerializeObject(obj);
}
/// <summary>
/// json的string字符串转换成数组对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="json"></param>
/// <returns></returns>
public static T JavaScriptDeserialize<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
/// <summary>
/// 序列化object 为 JSON
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string JsonSerialize<T>(T obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, obj);
string retVal = Encoding.UTF8.GetString(ms.ToArray());
return retVal;
}
/// <summary>
/// 反序列化json为object
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="json"></param>
/// <returns></returns>
public static T JSONDeserialize<T>(string json)
{
T obj = Activator.CreateInstance<T>();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
obj = (T)serializer.ReadObject(ms);
ms.Close();
return obj;
}
/// <summary>
/// 序列化object为XML
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string XMLSerialize<T>(T obj)
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
MemoryStream ms = new MemoryStream();
serializer.Serialize(ms, obj);
string retVal = Encoding.UTF8.GetString(ms.ToArray());
return retVal;
}
/// <summary>
/// 反序列化xml为object
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="xml"></param>
/// <returns></returns>
public static T XMLDeserialize<T>(string xml)
{
T obj = Activator.CreateInstance<T>();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xml));
XmlSerializer serializer = new XmlSerializer(obj.GetType());
obj = (T)serializer.Deserialize(ms);
ms.Close();
return obj;
}
/// <summary>
/// 将键值对转换成字典
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
public static IDictionary<string, string> ToDictionary(NameValueCollection source)
{
return source.AllKeys.ToDictionary(k => k, k => source[k]);
}
}