码迷,mamicode.com
首页 > Web开发 > 详细

Xml、Json序列化

时间:2017-04-28 10:30:43      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:span   adt   mod   type   tor   void   form   director   tty   

Xml序列化:

  public class XmlHelper 
    {
        private static string XmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["XmlPath"]);

        public static T FileToObject<T>(string fileName) where T : new()
        {
            string fullName = Path.Combine(XmlPath, fileName);
            if (File.Exists(fullName))
            {
                using (Stream fStream = new FileStream(fullName, FileMode.Open, FileAccess.ReadWrite))
                {
                    XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
                    return (T)xmlFormat.Deserialize(fStream);
                }
            }
            else
            {
                return default(T);
            }
            
        }

        public static void ObjectToFile<T>(T obj, string fileName) where T : new()
        {
            string fullName = Path.Combine(XmlPath, fileName);
            string fullPath = Path.GetDirectoryName(fullName);
            if (!Directory.Exists(fullPath))
            {
                Directory.CreateDirectory(fullPath);
            }
            using (Stream fStream = new FileStream(fullName, FileMode.Create, FileAccess.ReadWrite))
            {
                XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
                xmlFormat.Serialize(fStream, obj);
            }
        }

        public static string ObjectToString<T>(T obj) where T : new()
        {
            XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
            Stream stream = new MemoryStream();
            xmlSerializer.Serialize(stream, obj);
            stream.Position = 0;
            StreamReader reader = new StreamReader(stream);
            return reader.ReadToEnd();
        }

        public static  T StringToObject<T>(string content) where T : new()
        {
            using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(content)))
            {
                XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
                return (T)xmlFormat.Deserialize(stream);
            }
        }
    }

Json序列化:

/// <summary>
    /// Json序列化器
    /// </summary>
    public class JsonHelper 
    {
        private static string JsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["JsonPath"]);

        public static T FileToObject<T>(string fileName) where T : new()
        {
            string fullName = Path.Combine(JsonPath, fileName);
            if (File.Exists(fullName))
            {
                return StringToObject<T>(File.ReadAllText(fullName, Encoding.Default));
            }
            else
            {
                return default(T);
            }
        }

        public static void ObjectToFile<T>(T obj, string fileName) where T : new()
        {
            string fullName = Path.Combine(JsonPath, fileName);
            string fullPath = Path.GetDirectoryName(fullName);
            if (!Directory.Exists(fullPath))
            {
                Directory.CreateDirectory(fullPath);
            }
            using (FileStream fileStream = File.Create(fullName))
            {
                string text = JsonConvert.SerializeObject(obj);
                byte[] bytes = Encoding.Default.GetBytes(text);
                fileStream.Write(bytes, 0, bytes.Length);
            }
        }

        public static string ObjectToString<T>(T obj) where T : new()
        {
            return JsonConvert.SerializeObject(obj);
        }

        public static T StringToObject<T>(string content) where T : new()
        {
            return JsonConvert.DeserializeObject<T>(content);
        }
    }

 

Xml、Json序列化

标签:span   adt   mod   type   tor   void   form   director   tty   

原文地址:http://www.cnblogs.com/marshhu/p/6780127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!