欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實(shí)現(xiàn)json的序列化和反序列化實(shí)例代碼

 更新時(shí)間:2013年12月12日 16:20:46   作者:  
這篇文章主要介紹了C#實(shí)現(xiàn)json的序列化和反序列化實(shí)例代碼,有需要的朋友可以參考一下

在做asp.net和unity進(jìn)行http通信的時(shí)候,當(dāng)unity客戶端發(fā)出表單請(qǐng)求的時(shí)候,我要將他要請(qǐng)求的數(shù)據(jù)以json的格式返回給客戶端,讓客戶端來(lái)解析。服務(wù)器端這一塊就涉及到j(luò)son的序列化和反序列化的問(wèn)題。

兩種方法都有例子,第一種是用泛型集合來(lái)存儲(chǔ)的對(duì)象,然后將集合序列化一下;第二種是直接序列化的一個(gè)對(duì)象

復(fù)制代碼 代碼如下:

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類實(shí)現(xiàn)簡(jiǎn)單的序列化
    [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類實(shí)現(xiàn)序列化
    //可以使用IgnoreDataMember:指定該成員不是數(shù)據(jù)協(xié)定的一部分且沒(méi)有進(jìn)行序列化,DataMember:定義序列化屬性參數(shù),使用DataMember屬性標(biāo)記字段必須使用DataContract標(biāo)記類 否則DataMember標(biāo)記不起作用。
    [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);
        }


    }

相關(guān)文章

  • C# wpf解決Popup彈出位置異常問(wèn)題解決

    C# wpf解決Popup彈出位置異常問(wèn)題解決

    本文主要介紹了C# wpf解決Popup彈出位置異常問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C#使用ping命令的兩個(gè)例子

    C#使用ping命令的兩個(gè)例子

    這篇文章主要介紹了C#使用ping命令的兩個(gè)例子,本文給出了調(diào)用CMD命令和使用C# ping類的兩個(gè)例子,需要的朋友可以參考下
    2014-08-08
  • C#操作FTP出現(xiàn)500錯(cuò)誤解決辦法

    C#操作FTP出現(xiàn)500錯(cuò)誤解決辦法

    最近在做項(xiàng)目的時(shí)候需要操作ftp進(jìn)行文件的上傳下載,但在調(diào)用using (var response = (FtpWebResponse)FtpWebRequest.GetResponse())的時(shí)候總是出現(xiàn)"遠(yuǎn)程服務(wù)器返回錯(cuò)誤:(550)文件不可用(例如,未找到文件,無(wú)法訪問(wèn)文件)"的異常
    2014-03-03
  • 使用c#在word文檔中創(chuàng)建表格的方法詳解

    使用c#在word文檔中創(chuàng)建表格的方法詳解

    本篇文章是對(duì)使用c#在word文檔中創(chuàng)建表格的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#刪除UL LI中指定標(biāo)簽里文字的方法

    C#刪除UL LI中指定標(biāo)簽里文字的方法

    這篇文章主要介紹了C#刪除UL LI中指定標(biāo)簽里文字的方法,涉及C#針對(duì)頁(yè)面HTML元素進(jìn)行正則匹配與替換的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • C#控制臺(tái)模擬電梯工作原理

    C#控制臺(tái)模擬電梯工作原理

    簡(jiǎn)單的模擬一下電梯的運(yùn)行,電梯內(nèi)部和外部樓層呼叫的優(yōu)先級(jí)判斷。以前學(xué)硬件的時(shí)候做這個(gè)不成問(wèn)題,現(xiàn)在用軟件來(lái)模擬對(duì)我來(lái)說(shuō)比較難,要C#的圖形界面。求高手賜教。
    2015-06-06
  • C#實(shí)現(xiàn)會(huì)移動(dòng)的文字效果

    C#實(shí)現(xiàn)會(huì)移動(dòng)的文字效果

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)會(huì)移動(dòng)的文字效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C# 常用協(xié)議實(shí)現(xiàn)模版及FixedSizeReceiveFilter示例(SuperSocket入門)

    C# 常用協(xié)議實(shí)現(xiàn)模版及FixedSizeReceiveFilter示例(SuperSocket入門)

    本文主要介紹了常用協(xié)議實(shí)現(xiàn)模版及FixedSizeReceiveFilter示例。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • C# 使用HttpClient模擬請(qǐng)求的案例

    C# 使用HttpClient模擬請(qǐng)求的案例

    這篇文章主要介紹了C# 使用HttpClient模擬請(qǐng)求的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Unity命令行打包WebGL的示例代碼

    Unity命令行打包WebGL的示例代碼

    這篇文章主要介紹了Unity命令行打包WebGL的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02

最新評(píng)論