您的位置:首页 > Web前端 > JavaScript

常用辅助类——JSON,XML,模型互转,MD5,Base64

2015-10-30 16:49 573 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: