欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

序列化/反序列化JSON

墨初 知识笔记 88阅读

///总结///员工信息实体////summary[data contract(Namespace=' ')]public class employee实体{///summary///员工ID////summary[数据成员(Order=0)]公共字符串EmployeeID { get设置;} ///摘要///员工姓名////summary[数据成员(Order=1)]公共字符串EmployeeName { get设置;} ///摘要///出生日期////summary[data member(Order=2)]public DateTime出生日期日期{ get设置;} ///摘要///地址信息////summary[data member(Order=3)]公共地址信息实体地址信息{

, 1)">get; set; } } /// <summary> /// 地址信息实体 /// </summary> [DataContract(Namespace = "")] public class AddressinfoEntity { /// <summary> /// 街道名称 /// </summary> [DataMember(Order = 0)] public string StreetName { get; set; } /// <summary> /// 门牌号 /// </summary> [DataMember(Order = 1)] public string HouseNumber { get; set; } }

 

 

        /// <summary>
        /// 序列化JSON(将对象序列化为JSON字符串)
        /// </summary>
        protected void btnSerializeJSON_Click(object sender, EventArgs e)
        {
            var employeeEntity = new EmployeeEntity()
            {
                EmployeeID = Guid.NewGuid().ToString(""),
                EmployeeName = "/span>",
                BirthdayDate = DateTime.Now,
                AddressInfo = new AddressinfoEntity()
                {
                    StreetName = "一环路北三段55号",
                    HouseNumber = "55"
                }
            };
            var serializer = new DataContractJsonSerializer(typeof(EmployeeEntity));
            using (var stream = new MemoryStream())
            {
                serializer.WriteObject(stream, employeeEntity);
                byte[] dataBytes = new byte[stream.Length];
                stream.Position = 0;
                stream.Read(dataBytes, 0, dataBytes.Length);
                txtJSON.Text = Encoding.UTF8.GetString(dataBytes);
            }
        }
        /// <summary>
        /// 反序列化JSON(将JSON字符串反序列化为对象)
        /// </summary>
        protected void btnDeserializeJSON_Click(object sender, EventArgs e)
        {
            var serializer = new DataContractJsonSerializer(typeof(EmployeeEntity));
            using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(txtJSON.Text)))
            {
                EmployeeEntity employeeEntity = serializer.ReadObject(stream) as EmployeeEntity;
                txtDeJSON.Text = string.Format("employeename=[{0}]\r\n", employeeEntity.EmployeeName);
                txtDeJSON.Text += string.Format("birthdaydate=[{0}]\r\n", employeeEntity.BirthdayDate);
                txtDeJSON.Text += string.Format("streetname=[{0}]", employeeEntity.AddressInfo.StreetName);
            }
        }

序列化后结果如下:

{
    "EmployeeID":"abfc39fe-e988-4d01-b70c-1b07caa1bec0",
    "EmployeeName":"/span>",
    "BirthdayDate":"\/Date(1278049399906+0800)\/",
    "AddressInfo":{
        "StreetName":"一环路北三段55号",
        "HouseNumber":"55"
    }
}

 

反序列化后结果如下:

employeename=[]
birthdaydate=[2010/7/2 13:43:19]
streetname=[一环路北三段55号]

标签:
声明:无特别说明,转载请标明本文来源!