亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

C#中Json字符串的各種應用類

2019-11-14 13:54:24
字體:
來源:轉載
供稿:網友

        在程序中任何事物及信息都可以用對象進行描述和承載,除了比較流行的xml之外,還有一種簡潔快速處理目標信息的形式那就是Json格式。

       首先Json格式有自己固定的格式:例如person這個對象就可以簡單的表示成{"name":"xxxx","age":12,"sex":"男"}形式。

Json格式的描述如下:先用{}包含需要表達的對象信息,在{}里使用PRopertyName:Value進行對象屬性的描述,同時Json字符串可以實現多層嵌套。例如:Json數據:[{PropertyName:Value,PropertyName:Value},{PropertyName:Value,PropertyName:Value}],Json嵌套格式:{PropertyName:Value,PropertyName:{PropertyName:Value,PropertyName:Value}},理論上可以無限嵌套,但是這里建議嵌套最好不要超過3層。

       對Json格式有了了解之后,那我們如何在C#中使用Json以及將已經實現的對象與Json聯系起來。先個給出幾個命名空間

using Newtonsoft.Json;
using System.Runtime.Serialization;
using System.ServiceModel;
using Newtonsoft.Json.Linq;
using System.IO;
using System.Runtime.Serialization.Json;

這里需要注意的是 這些命名空間在 .net3.5及以上本版支持,同時必須在引用中添加 System.Runtime.Serialization.dll的引用。

這里主要使用到的類如下:

JsonSerializer ,StringWriter,StringReader ,JsonWriter,JsonConvert, DataContractJsonSerializer。

1.實現自定義類與Json進行相互轉化處理:

    public class Person    {        public   Person()        {        }        public Person(string Name, string Sex, int Age, string Address, PersonCharacter Character)        {            this.Name = Name;            this.Sex = Sex;            this.Age = Age;            this.Address = Address;            this.Character = Character;        }             public string Name { get; set; }         public string Sex { get; set; }        public int  Age { get; set; }        public string Address { get; set; }       public PersonCharacter Character { get; set; }    }    public class PersonCharacter    {        public string Daode { get; set; }        public string Wenhua { get; set; }        public string Xiuyang { get; set; }    } public void ShowConvert()        {            Person person = new Person("lanar", "", 24, "陜西", new PersonCharacter());           JsonSerializer serializer = new JsonSerializer();StringWriter sw = new StringWriter();serializer.Serialize(new JsonTextWriter(sw), person );Console.WriteLine(sw.GetStringBuilder().ToString());StringReader sr = new StringReader(@"{""Name"":""ppp"", ""Age"":"12"}");Person p1 = (Project)serializer.Deserialize(new JsonTextReader(sr), typeof(Person));Console.WriteLine(p1.Name+ "=>" + p1.Age);        }


2. 契約方式:使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory實現

 1  [DataContract] 2     public class Person 3     { 4         public   Person() 5         { 6         } 7         public Person(string Name, string Sex, int Age, string Address, PersonCharacter Character) 8         { 9             this.Name = Name;10             this.Sex = Sex;11             this.Age = Age;12             this.Address = Address;13             this.Character = Character;14         }15         [DataMember]16         public string Name { get; set; }17 18         [DataMember]19         public string Sex { get; set; }20 21         [DataMember]22         public int  Age { get; set; }23 24            [DataMember]25         public string Address { get; set; }26 27         [DataMember]28         public PersonCharacter Character { get; set; }29 30     }31 32     public class PersonCharacter33     {34 35 36         public string Daode { get; set; }37 38 39         public string Wenhua { get; set; }40 41 42         public string Xiuyang { get; set; }43     }44 45 46         public void ShowConvert()47         {48             Person person = new Person("許展鵬", "", 24, "陜西", new PersonCharacter());49 50             Person p = new Person() { Name = "四大圣地", Age = 22, Sex = "", Character = new PersonCharacter() {  Daode="sds", Wenhua="dasd", Xiuyang="zzz"} };51             DataContractJsonSerializer serializer = new DataContractJsonSerializer(p.GetType());52             string jsonText;53 54             try55             {56                 using (MemoryStream stream = new MemoryStream())57                 {58                     serializer.WriteObject(stream, p);59                     jsonText = Encoding.UTF8.GetString(stream.ToArray());60                     Console.WriteLine(jsonText);61                 }62 63                 using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonText)))64                 {65                     DataContractJsonSerializer serializer1 = new DataContractJsonSerializer(typeof(Person));66                     Person p1 = (Person)serializer1.ReadObject(ms);67 68                 }69             }70             catch (Exception ex )71             {72                 73                 throw new Exception(ex.Message,ex);74             }75         }
View Code

使用契約方式必須在類及相關的屬性添加相關的契約修飾符: [DataContract], [DataMember] 內嵌的對象內部可以不用添加契約修飾符號的。

     以上只是最常用的應用方式,對于有特殊需求的實現可以使用第三方實現的json轉換類進行處理。在web頁面可以使用   引入System.Web.Script.Serialization命名空間使用 javaScriptSerializer類實現簡單的序列化。

 

JSON官網:http://www.json.org/json-zh.html

獨立JSON序列化:http://msdn.microsoft.com/zh-cn/library/bb412170.aspx

如何對JSON序列化和反序列化:http://msdn.microsoft.com/zh-cn/library/bb412179.aspx

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人性生活| 欧美电影免费观看高清完整| 国产精品视频大全| 国产aⅴ夜夜欢一区二区三区| 久久久成人精品视频| 97精品欧美一区二区三区| 久久综合电影一区| 美女国内精品自产拍在线播放| 91精品国产自产在线观看永久| 午夜精品蜜臀一区二区三区免费| 欧美成人免费播放| 日韩精品一区二区视频| 91网在线免费观看| 国产欧美va欧美va香蕉在| 97人人爽人人喊人人模波多| 久久在线精品视频| 国产精品www| 九九久久国产精品| 国产mv久久久| 欧美精品在线免费播放| 久久天天躁夜夜躁狠狠躁2022| 国产伦精品免费视频| 91精品国产综合久久香蕉| 午夜精品久久久久久久久久久久久| 久久99亚洲热视| 日韩欧美综合在线视频| 国产一区二区丝袜高跟鞋图片| 久久亚洲国产精品成人av秋霞| 欧美亚洲另类制服自拍| 97超级碰碰碰久久久| 欧美成人精品不卡视频在线观看| 国产网站欧美日韩免费精品在线观看| 日韩av在线网页| 色偷偷91综合久久噜噜| 97婷婷涩涩精品一区| 国产精品男人爽免费视频1| 国产精品mp4| 26uuu亚洲伊人春色| 欧美性在线观看| 97视频在线观看免费| 91沈先生在线观看| 欧美另类极品videosbestfree| 日韩av免费在线观看| 亚洲精品一二区| 色播久久人人爽人人爽人人片视av| 伊人久久久久久久久久久| 久久久黄色av| 91沈先生作品| 久久久久久久久网站| 久久久91精品| 欧美在线国产精品| 55夜色66夜色国产精品视频| 精品久久久久久久久久久| 91免费视频网站| 亚洲精品www| 欧美精品一区三区| 亚洲小视频在线观看| 亚洲精品日韩在线| 91超碰caoporn97人人| 久久精品视频中文字幕| 青青草成人在线| 亚洲免费影视第一页| 国产精品久久久久久av福利| 国产欧美日韩最新| 亚洲xxxx18| 日韩av在线天堂网| 久久香蕉国产线看观看av| 日韩中文理论片| 国产一区二区三区毛片| 久久999免费视频| 久久精品美女视频网站| 午夜精品久久久99热福利| 亚洲大胆人体在线| 欧美激情欧美狂野欧美精品| 欧美一级视频一区二区| 国产精品1区2区在线观看| 亚洲精品短视频| 色av中文字幕一区| 欧美在线精品免播放器视频| 欧美小视频在线| 国产精品日韩久久久久| 永久免费毛片在线播放不卡| 狠狠干狠狠久久| 亚洲影院色无极综合| 欧美黑人性视频| 91亚洲va在线va天堂va国| 视频在线一区二区| 亚洲高清一二三区| 91精品91久久久久久| 久久精品一区中文字幕| 欧美激情xxxx| 亚洲娇小xxxx欧美娇小| 久久久精品国产亚洲| 日韩欧美中文第一页| 欧美精品18videos性欧美| 成人综合网网址| 久久亚洲精品网站| 国产免费一区视频观看免费| 亚洲人线精品午夜| 在线午夜精品自拍| 成人福利网站在线观看| 亚洲精品av在线播放| 97人人爽人人喊人人模波多| 久久99久久99精品免观看粉嫩| 国产精品亚发布| 亚洲丝袜av一区| 亚洲一区二区黄| 国产免费一区二区三区在线能观看| 韩国精品久久久999| 97色在线视频观看| 韩日欧美一区二区| 狠狠躁夜夜躁人人躁婷婷91| 成人在线小视频| 国产香蕉精品视频一区二区三区| 日韩成人激情影院| 国产精品99免视看9| 这里只有精品丝袜| 欧美激情图片区| 色综合男人天堂| 久久国产精品偷| 欧美成人免费全部观看天天性色| 亚洲成av人片在线观看香蕉| 亚洲精品国偷自产在线99热| 自拍偷拍亚洲一区| 国产精品网址在线| 日韩视频一区在线| 国产精品香蕉国产| 午夜精品国产精品大乳美女| 国产成一区二区| 久久久久久免费精品| 日韩电影免费在线观看| 成人网欧美在线视频| 亚洲欧美日韩精品久久| 国产精品第一第二| 91精品视频网站| 欧美午夜丰满在线18影院| 亚洲欧美三级在线| 亚洲精品国产欧美| 色婷婷av一区二区三区在线观看| 欧美在线观看www| 亚洲国产欧美一区二区三区同亚洲| 国产主播喷水一区二区| 青草成人免费视频| 91亚洲午夜在线| 久久五月天综合| 在线看片第一页欧美| 亚洲国产精久久久久久久| 亚洲精品国产精品久久清纯直播| 九九热这里只有在线精品视| 欧美日韩国产丝袜另类| 一区二区三区 在线观看视| 日韩在线一区二区三区免费视频| 日韩欧美在线网址| 国产精品成人va在线观看| 成人国产在线激情| 亚洲国产高清高潮精品美女| 国产成人综合久久| 欧美日韩在线视频一区二区| 久久成人精品一区二区三区| 日韩av电影手机在线| 亚洲a在线观看| 日韩av一卡二卡| 欧美日韩中文字幕日韩欧美| 亚洲精品有码在线|