public static class ObjectHelper
{
#region 数据互转
public static string ToXml(this object obj)
{
XmlSerializer s = new XmlSerializer(obj.GetType());
using (MemoryStream ms = new MemoryStream())
{
using (XmlTextWriter tw = new XmlTextWriter(ms, Encoding.UTF8))
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
s.Serialize(tw, obj, ns);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
}
public static T ToObjectFromXml<T>(this string xml) where T : class
{
XmlSerializer s = new XmlSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xml)))
{
using (StreamReader sr = new StreamReader(ms))
{
return (T)s.Deserialize(sr);
}
}
}
public static string ToJson(this object obj)
{
DataContractJsonSerializer s = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream ms = new MemoryStream())
{
s.WriteObject(ms, obj);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
public static T ToObjectFromJson<T>(this string json) where T : class
{
DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T));
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
return (T)s.ReadObject(ms);
}
}
public static string XmltoJson(this string xml)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);
return json;
}
public static string Shrink(this Guid target)
{
string base64 = Convert.ToBase64String(target.ToByteArray());
string encoded = base64.Replace("/", "_").Replace("+", "-");
return encoded.Substring(0, 22);
}
public static Guid ToGuid(this string target)
{
Guid result = Guid.Empty;
if ((!string.IsNullOrEmpty(target)) && (target.Trim().Length == 22))
{
string encoded = string.Concat(target.Trim().Replace("-", "+").Replace("_", "/"), "==");
try
{
byte[] base64 = Convert.FromBase64String(encoded);
result = new Guid(base64);
}
catch (FormatException)
{
}
}
return result;
}
public static string ToMD5(this string encyStr)
{
return MD5(encyStr);
}
public static string ToB64(this string encyStr)
{
return Convert.ToBase64String(Encoding.GetEncoding("GBK").GetBytes(encyStr));
}
public static string FromB64(this string encyStr)
{
byte[] bpath1 = Convert.FromBase64String(encyStr);
encyStr = System.Text.ASCIIEncoding.Default.GetString(bpath1);
return encyStr;
}
}
常用辅助类——JSON,XML,模型互转,MD5,Base64
最新推荐文章于 2023-05-31 16:05:50 发布