/// <summary>
/// 将C#数据实体转化为xml数据
/// </summary>
/// <param name="obj">要转化的数据实体</param>
/// <returns>xml格式字符串</returns>
public static string XmlSerialize<T>(T obj)
{
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
stream.Position = 0;

StreamReader sr = new StreamReader(stream);
string resultStr = sr.ReadToEnd();
sr.Close();
stream.Close();

return resultStr;
}

/// <summary>
/// 将xml数据转化为C#数据实体
/// </summary>
/// <param name="json">符合xml格式的字符串</param>
/// <returns>T类型的对象</returns>
public static T XmlDeserialize<T>(string xml)
{

DataContractSerializer serializer = new DataContractSerializer(typeof(T));
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(xml.ToCharArray()));
T obj = (T)serializer.ReadObject(ms);
ms.Close();

return obj;
}

/// <summary>
/// 将C#数据实体转化为JSON数据
/// </summary>
/// <param name="obj">要转化的数据实体</param>
/// <returns>JSON格式字符串</returns>
public static string JsonSerialize<T>(T obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
stream.Position = 0;

StreamReader sr = new StreamReader(stream);
string resultStr = sr.ReadToEnd();
sr.Close();
stream.Close();

return resultStr;
}

/// <summary>
/// 将JSON数据转化为C#数据实体
/// </summary>
/// <param name="json">符合JSON格式的字符串</param>
/// <returns>T类型的对象</returns>
public static T JsonDeserialize<T>(string json)
{
//json 必须为 {name:"value",name:"value"} 的格式(要符合JSON格式要求)
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(json.ToCharArray()));
T obj = (T)serializer.ReadObject(ms);
ms.Close();

return obj;
}

 posted on 2017-09-08 17:10  代码改变世界&1024  阅读(154)  评论(0)    收藏  举报