日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DataContractJsonSerializer类

發布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DataContractJsonSerializer类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DataContractJsonSerializer類

  DataContractJsonSerializer類同樣是提供JSON序列化的類。而且貌似有幾個方法還和XML有點點關系。

  注意用此類要引用System.ServiceModel.Web.dll與System.Runtime.Serialization.dll

  1、屬性

  DataContractSurrogate       獲取給定 IDataContractSurrogate 實例的當前活動代理項類型。代理項可以擴展序列化或反序列化過程。?
  IgnoreExtensionDataObject     獲取一個值,指定在反序列化時是否忽略未知數據以及在序列化時是否忽略 IExtensibleDataObject 接口。
  KnownTypes            ?獲取一個類型集合,這些類型可呈現在使用此 DataContractJsonSerializer 實例序列化的對象圖中。?
  MaxItemsInObjectGraph       ?獲取序列化程序通過一次讀取或寫入調用在對象圖中序列化或反序列化的最大項數。

  2、方法

  IsStartObject     已重載。 獲取一個值,該值指定序列化程序是否可以讀取對象。?
  ReadObject      ??已重載。 反序列化 JSON(JavaScript 對象表示法)數據,并返回反序列化的對象。?
  WriteEndObject    ?已重載。 將結束 XML 元素寫入可映射到 JavaScript 對象表示法 (JSON) 的 XML 文檔。?
  WriteObject      ?已重載。 將對象序列化為 JavaScript 對象表示法 (JSON) 文檔。?
  WriteObjectContent ? 已重載。 將對象內容寫入可映射到 JavaScript 對象表示法 (JSON) 的 XML,而不寫入包裝元素。?
  WriteStartObject   ?已重載。 寫入開始 XML 元素,以便將對象序列化為可映射到 JavaScript 對象表示法 (JSON) 的 XML。

  例子:

class Program{static void Main(string[] args){DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person));//最常用的兩個方法string str = "{\"Id\":1,\"Name\":\"劉備\",\"Age\":\"23\"}";Person p;using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) //構造函數能夠接受Stream參數,因此你可以用內存流,文件流等等創建{p = serializer.ReadObject(ms) as Person;}Console.WriteLine(p.Name); //輸出劉備Person p2 = new Person(2, "關羽", 23);byte[] byteArr;using (MemoryStream ms = new MemoryStream()){serializer.WriteObject(ms, p2);byteArr = ms.ToArray();}Console.WriteLine(Encoding.UTF8.GetString(byteArr)); //輸出 {"Age":23,"Id":1,"Name":"關羽"}Console.WriteLine(serializer.MaxItemsInObjectGraph); //2147483647 獲取序列化程序通過一次讀取或寫入調用在對象圖中序列化或反序列化的最大項數。Console.WriteLine(serializer.DataContractSurrogate); //輸出 空白Console.WriteLine(serializer.IgnoreExtensionDataObject); //False 反序列化時是否忽略未知數據以及在序列化時是否忽略 IExtensibleDataObject 接口。 Console.WriteLine(serializer.KnownTypes.Count); //輸出 0 一個類型集合,這些類型可呈現在使用此 DataContractJsonSerializer 實例序列化的對象圖中。 //IsStartObject 已重載。 獲取一個值,該值指定序列化程序是否可以讀取對象。 //WriteEndObject 已重載。 將結束 XML 元素寫入可映射到 JavaScript 對象表示法 (JSON) 的 XML 文檔。 //WriteObjectContent 已重載。 將對象內容寫入可映射到 JavaScript 對象表示法 (JSON) 的 XML,而不寫入包裝元素。 //WriteStartObject 已重載。 寫入開始 XML 元素,以便將對象序列化為可映射到 JavaScript 對象表示法 (JSON) 的 XML。 Console.ReadKey();}}[DataContract] //對于使用DataContractJsonSerializer類而言,該屬性是必須的public class Person{public Person(int id,string name,int age){Id = id;Age = age;Name = name;}[DataMember] //對于使用DataContractJsonSerializer類而言,該屬性是必須的public int Id{get;set;}[DataMember] public string Name{get;set;}[DataMember] public int Age{get;set;}}

?

分類:?前端:Json

總結

以上是生活随笔為你收集整理的DataContractJsonSerializer类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。