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

  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;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值