国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[asp.net]C#實現json的序列化和反序列化

2019-11-15 02:31:40
字體:
來源:轉載
供稿:網友
[asp.net]C#實現json的序列化和反序列化

在做asp.net和unity進行http通信的時候,當unity客戶端發出表單請求的時候,我要將他要請求的數據以json的格式返回給客戶端,讓客戶端來解析。服務器端這一塊就涉及到json的序列化和反序列化的問題。

接下來就來舉個列子,當然包括兩種方法(本篇參考自:http://www.csharpwin.com/csharpspace/10822r2908.shtml)

兩種方法都有例子,第一種是用泛型集合來存儲的對象,然后將集合序列化一下;第二種是直接序列化的一個對象

復制代碼
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);        }    }
復制代碼


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵丘县| 常州市| 乡城县| 咸阳市| 会理县| 盐亭县| 平原县| 宜君县| 攀枝花市| 安泽县| 托克托县| 同德县| 腾冲县| 东乌珠穆沁旗| 紫阳县| 江达县| 盐边县| 寿宁县| 秦皇岛市| 水富县| 武川县| 潍坊市| 江川县| 盐亭县| 新巴尔虎右旗| 建湖县| 平度市| 阳春市| 大关县| 九江县| 靖江市| 高阳县| 大埔县| 赣州市| 白沙| 大连市| 乌兰浩特市| 宁安市| 东乡县| 剑阁县| 利津县|