序列化和反序列化

序列化(list转json)

        public string ToSerialize(List<Task> person)
        {
            //序列化对象
            DataContractJsonSerializer toser = new DataContractJsonSerializer(typeof(List<Task>));
            //创建一个流
            MemoryStream ms = new MemoryStream();
            //将对象转换成json存储,并写入流中
            toser.WriteObject(ms, person);

            //编码格式为UTF-8,将流的内容写入数组
            string jsonStr = Encoding.UTF8.GetString(ms.ToArray());
            return jsonStr;
        }

反序列化(json转list)

        public List<UserEntity> Deserialize(string jsonStr)
        {
            //反序列化对象
            DataContractJsonSerializer deser = new DataContractJsonSerializer(typeof(List<UserEntity>));
            //编码方式为UTF-8,将字符串变为一个字节序列并存储在数组
            byte[] byteData = UTF8Encoding.UTF8.GetBytes(jsonStr);
            //创建一个流接收字节序列数组
            MemoryStream ms1 = new MemoryStream(byteData);
            //用实体接收(用json接收的文档流)返回的反序列化的对象
            List<UserEntity> flist = (List<UserEntity>)deser.ReadObject(ms1);
            return flist;
        }

实例:

下图代表了转换的格式,如果是实体,就改成实体,就是将实体序列化为json。反序列化同样的道理。

序列化和反序列化