zoukankan      html  css  js  c++  java
  • Xml、Json序列化

    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);
            }
        }
  • 相关阅读:
    Stm32高级定时器(一)
    AES算法简介
    vsim仿真VHDL输出fsdb格式文件
    ncsim仿真VHDL
    云贵高原骑行
    触发器(笔记)
    几种常见的十进制代码(笔记)
    时序电路分类
    组合逻辑电路和时序逻辑电路比较
    数字电路基础(网络整理)
  • 原文地址:https://www.cnblogs.com/marshhu/p/6780127.html
Copyright © 2011-2022 走看看