C# Json跟xml的一些数据转换

          ///
        /// 将对象序列化为XML数据
        ///

        ///
        ///
        private byte[] SerializeToXmlBytes(object obj)
        {
            MemoryStream stream = new MemoryStream();
            XmlSerializer xs = new XmlSerializer(obj.GetType());
            xs.Serialize(stream, obj);
            byte[] data = stream.ToArray();
            stream.Close();
            return data;
        }


        ///   
        /// 将 Stream 写入文件   
        ///
  
        private  void StreamToFile(Stream stream, string filepath)
        {
            // 把 Stream 转换成 byte[]   
            byte[] bytes = new byte[stream.Length];
            stream.Read(bytes, 0, bytes.Length);
            // 设置当前流的位置为流的开始   
            stream.Seek(0, SeekOrigin.Begin);
            // 把 byte[] 写入文件   
            FileStream fs = new FileStream(filepath, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(bytes);
            bw.Close();
            fs.Close();

        }

         ///


        /// 将XML数据反序列化为指定类型对象
        ///

        ///
        ///
        ///
        private static T DeserializeWithXml(byte[] data)
        {
            MemoryStream stream = new MemoryStream();
            stream.Write(data, 0, data.Length);
            //注意,在反序列化的时候,将byte[]写入流以后,需要将游标移到首位,即将Position置零,否则反序列化将报错
            stream.Position = 0;
            XmlSerializer xs = new XmlSerializer(typeof(T));
            object obj = xs.Deserialize(stream);
            stream.Close();
            return (T)obj;
        }


        ///
        /// 将json的二进制文件转换为string
        ///

        ///
        ///
        private static String ByteToJsonString(byte[] json)
        {
            return Encoding.Default.GetString(json, 0, json.Length);
        }

       ///

  
        /// 将 Stream 写入文件   
        ///
  
        private static void StreamToFile(Stream stream, string filepath)
        {
            // 把 Stream 转换成 byte[]   
            byte[] bytes = new byte[stream.Length];
            stream.Read(bytes, 0, bytes.Length);
            // 设置当前流的位置为流的开始   
            stream.Seek(0, SeekOrigin.Begin);
            // 把 byte[] 写入文件   
            FileStream fs = new FileStream(filepath, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            bw.Write(bytes);
            bw.Close();
            fs.Close();
        }

          ///
        /// json字符反序列化为对象
        ///

        /// 实体类型
        /// json字符串
        /// 编码格式
        /// T
        public static T JsonToObject(string json, Encoding encoding)
        {
            T resultObject = default(T);
            try
            {
                resultObject = Activator.CreateInstance();
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                using (var ms = new MemoryStream(encoding.GetBytes(json)))
                {
                    resultObject = (T)serializer.ReadObject(ms);
                }
            }
            catch(Exception)
            { 
                //ignore
            }
            return resultObject;

        }

         ///


        /// 将对象序列化为XML数据
        ///

        ///
        ///
        private static byte[] SerializeToXmlBytes(object obj)
        {
            MemoryStream stream = new MemoryStream();
            XmlSerializer xs = new XmlSerializer(obj.GetType());
            xs.Serialize(stream, obj);
            byte[] data = stream.ToArray();
            stream.Close();
            return data;
        }

         ///
        /// 文件转化成byte[]数组
        ///

        /// 文件名
        ///
        private byte[] FileContent(string fileName)
        {
            FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            try
            {
                byte[] buffur = new byte[fs.Length];
                fs.Read(buffur, 0, (int)fs.Length);
                return buffur;
            }
            catch (Exception ex)
            {
                return null;
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }



你可能感兴趣的:(C# Json跟xml的一些数据转换)