常用辅助类——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; } }
相关文章推荐
- [WEB API] CLIENT 指定请求及回应格式(XML/JSON)
- 访问javascript对象的属性和方法
- javascript浮动广告的实现
- javaScript正则表达式
- js 常用对象有哪些
- Groovy 解析json和闭包的使用
- 提升JavaScript递归效率:Memoization技术详解
- JavaScript 开发的 45个 经典技巧
- JavaScript 调用 CSS 属性
- jsp实现简单的学生管理信息系统的类
- javascript中window.location.search方法简介
- fastjson文档解读——上篇
- 使用JavaScript正则表达式如何去掉双引号
- 一个简单的学生登陆系统的jsp实现之身份验证
- js里alert()返回值
- 一个简单的学生登陆系统的jsp实现之登陆主页面main.jsp
- ionic js 指令布局介绍
- js实现点击获取验证码倒计时效果
- js封装map
- 一个简单的学生登陆系统的jsp实现之登陆身份验证