zoukankan      html  css  js  c++  java
  • C#实现json的序列化和反序列化

    using System;
    using System.Collections.Generic;
    using System.Web.Script.Serialization;
    using System.Configuration;
    using System.Runtime.Serialization.Json;
    using System.Runtime.Serialization;
    using System.IO;
    using System.Text;
    
    
    namespace WebApplication1
    {
    
        //方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化
        [Serializable]
        public class Person
        {
            
            private int id;
            /// <summary>
            /// id
            /// </summary>
            public int Id
            {
                get { return id; }
                set { id = value; }
            }
    
            private string name;
            /// <summary>
            /// 姓名
            /// </summary>
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
        }
    
        //方法二:引入 System.Runtime.Serialization.Json命名空间使用 DataContractJsonSerializer类实现序列化
        //可以使用IgnoreDataMember:指定该成员不是数据协定的一部分且没有进行序列化,DataMember:定义序列化属性参数,使用DataMember属性标记字段必须使用DataContract标记类 否则DataMember标记不起作用。
        [DataContract]
        public class Person1
        {
            
            [IgnoreDataMember]
            public int Id { get; set; }
    
            [DataMember(Name = "name")]
            public string Name { get; set; }
            [DataMember(Name = "sex")]
            public string Sex { get; set; }
    
        }
    
        public partial class _Default : System.Web.UI.Page
        {
            string constr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;
            
            protected void Page_Load(object sender, EventArgs e)
            {
                
                Person p1 = new Person();
                p1.Id = 1;
                p1.Name = "dxw";
                Person p2 = new Person();
                p2.Id = 2;
                p2.Name = "wn";
    
                List<Person> listperson = new List<Person>();
                listperson.Add(p1);
                listperson.Add(p2);
    
                JavaScriptSerializer js = new JavaScriptSerializer();
                //json序列化
                string s = js.Serialize(listperson);
                Response.Write(s);
    
    
    
                //方法二
                Person1 p11 = new Person1();
                p11.Id = 1;
                p11.Name = "hello";
                p11.Sex = "";
                DataContractJsonSerializer json = new DataContractJsonSerializer(p11.GetType());
    
                string szJson = "";
    
                //序列化
    
                using (MemoryStream stream = new MemoryStream())
    
                {
    
                    json.WriteObject(stream, p11);
    
                    szJson = Encoding.UTF8.GetString(stream.ToArray());
    
                    Response.Write(szJson);
                }
    
                //反序列化
    
                //using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
    
                //{
    
                //    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(People));
    
                //    Person1 _people = (Person1)serializer.ReadObject(ms);
    
                //}
             }
            
    
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                Response.Write(constr);
            }
    
    
        }
  • 相关阅读:
    C++类中的函数重载
    C++中的友元
    bzoj 2820
    莫比乌斯函数
    bzoj 2440: [中山市选2011]完全平方数
    莫比乌斯反演1
    [转]C++ 指针和引用
    P2756 飞行员配对方案问题
    P2055 [ZJOI2009]假期的宿舍
    P2654 原核生物培养
  • 原文地址:https://www.cnblogs.com/tinya/p/4551657.html
Copyright © 2011-2022 走看看