[DataContract]
    public class t_experience
    {
        [DataMember(Order = 0, IsRequired = true)]
        public int level { get; set; }        [DataMember(Order = 1)]
        public Int64 upgradeNeedExperience { get; set; }
    }    public static class JSON
    {
        public static T parse<T>(string jsonString)
        {
            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
            }
        }
        public static T parse<T>(string jsonString)
        {
            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
            }
        }    }/////////////////////////////
            // 序列化
            var jsonString = JSON.stringify(new[] { p1, p2 });            // 反序列化,泛型集合
            // 数组转换            
            t_experience[] aa =JSON.parse<t_experience[]>(jsonString);
请问我怎么把这个aa写成一个二进制的文本

解决方案 »

  1.   

    把aa序列化成byte[],然后用File类写入文件
      

  2.   


    这样不行,用这这个没法反回来.        public static string stringify(object jsonObject)
            {
                using (var ms = new MemoryStream())
                {
                    new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject);                return Encoding.UTF8.GetString(ms.ToArray());
                }
            }
      

  3.   

    要把类转成转换为byte数组写入那种才行
      

  4.   

    也就是类似我想把这个类当作struct的样子写一个二进制文件
      

  5.   


    不是想加密,我是想实现JSON与二进制文件BSON互转
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Runtime.Serialization.Json;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.Runtime.Serialization;namespace ConsoleApplication5
    {
        [DataContract]
        [Serializable]
        public class t_experience
        {
            [DataMember(Order = 0, IsRequired = true)]
            public int level { get; set; }        [DataMember(Order = 1)]
            public Int64 upgradeNeedExperience { get; set; }
        }    public static class JSON
        {        public static T parse<T>(string jsonString)
            {
                using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
                {
                    return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
                }
            }
            public static string stringify(object jsonObject)
            {
                using (var ms = new MemoryStream())
                {
                    new DataContractJsonSerializer(jsonObject.GetType()).WriteObject(ms, jsonObject);                return Encoding.UTF8.GetString(ms.ToArray());
                }
            }
        }
        //二进制
        public static class BinaryFmt
        {
            //反序列化
            public static T parse<T>(byte[] buffer) where T : class
            {
                BinaryFormatter bf = new BinaryFormatter();
                using (var ms = new MemoryStream(buffer))
                {
                    return bf.Deserialize(ms) as T;
                }
            }
            //序列化
            public static byte[] binaryify(object binaryObject)
            {
                BinaryFormatter bf = new BinaryFormatter();
                using (var ms = new MemoryStream())
                {
                    bf.Serialize(ms, binaryObject);
                    return ms.ToArray();
                }
            }
        }    class Program
        {
            static void Main(string[] args)
            {
                t_experience p1 = new t_experience() { level = 1, upgradeNeedExperience = 111 };
                t_experience p2 = new t_experience() { level = 2, upgradeNeedExperience = 222 };
                // 序列化            
                var jsonString = JSON.stringify(new t_experience[] { p1, p2 });
                // 反序列化,泛型集合                       
                t_experience[] aa = JSON.parse<t_experience[]>(jsonString);
                //二进制序列化成
                byte[] buffer = BinaryFmt.binaryify(aa);
                //这里存文件
                //二进制反序列化
                t_experience[] bb = BinaryFmt.parse<t_experience[]>(buffer);
                // json序列化 
                var json2String = JSON.stringify(bb);
                Console.WriteLine(json2String);
                Console.ReadKey();        }
        }
    }
      

  7.   

    感谢楼主让我看到了json,我以前还不会用json序列化