亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

如何:對 JSON 數(shù)據(jù)進(jìn)行序列化和反序列化

系統(tǒng) 2570 0

JSON(JavaScript 對象符號(hào))是一種高效的數(shù)據(jù)編碼格式,可用于在客戶端瀏覽器和支持 AJAX 的 Web 服務(wù)之間快速交換少量數(shù)據(jù)。

本主題演示如何使用 DataContractJsonSerializer 將 .NET 類型對象序列化為 JSON 編碼數(shù)據(jù),然后將 JSON 格式的數(shù)據(jù)反序列化回 .NET 類型的實(shí)例。 此處的示例使用數(shù)據(jù)協(xié)定來演示用戶定義的 Person 類型的序列化和反序列化。

通 常,當(dāng)在通過支持 AJAX 的終結(jié)點(diǎn)公開的服務(wù)操作中使用數(shù)據(jù)協(xié)定類型時(shí),Windows Communication Foundation (WCF) 會(huì)自動(dòng)處理 JSON 序列化和反序列化。 但是,在某些情況下您可能需要直接處理 JSON 數(shù)據(jù),這正是本主題演示的方案。

注意:如果在服務(wù)器上的傳出答復(fù)的序列化期間發(fā)生錯(cuò)誤或答復(fù)操作由于某種其他原因引發(fā)錯(cuò)誤,則可能不會(huì)將其作為錯(cuò)誤返回到客戶端。

本主題基于 JSON Serialization 示例。

定義 Person 的數(shù)據(jù)協(xié)定

將 Person 類型的實(shí)例序列化為 JSON

  1. 創(chuàng)建 Person 類型的實(shí)例。

                Person p = new Person();
                
    p.name = "John";
    p.age = 42;
  2. 使用 DataContractJsonSerializer Person 對象序列化為內(nèi)存流。

                MemoryStream stream1 = new MemoryStream();
                
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
  3. 使用 WriteObject 方法將 JSON 數(shù)據(jù)寫入到流中。

                ser.WriteObject(stream1, p);
              
  4. 顯示 JSON 輸出。

                stream1.Position = 0;
                
    StreamReader sr = new StreamReader(stream1);
    Console.Write("JSON form of Person object: ");
    Console.WriteLine(sr.ReadToEnd());

從 JSON 反序列化 Person 類型的實(shí)例

  1. 通過使用 DataContractJsonSerializer ReadObject 方法,將 JSON 編碼數(shù)據(jù)反序列化為一個(gè)新的 Person 實(shí)例:

                stream1.Position = 0;
                
    Person p2 = (Person)ser.ReadObject(stream1);
  2. 顯示結(jié)果。

                Console.Write("Deserialized back, got name=");
                
    Console.Write(p2.name);
    Console.Write(", age=");
    Console.WriteLine(p2.age);

示例

Note 注意:

對于包含多個(gè)具有相同名稱的成員的數(shù)據(jù)協(xié)定,JSON 序列化程序?qū)⒁l(fā)一個(gè)序列化異常,如以下示例代碼中所示。

        [DataContract]
        
public class TestDuplicateDataBase
{
[DataMember]
public int field1 = 123;
}
[DataContract]
public class TestDuplicateDataDerived : TestDuplicateDataBase
{
[DataMember]
public new int field1 = 999;
}

如何:對 JSON 數(shù)據(jù)進(jìn)行序列化和反序列化


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 九九国产在线 | 国产亚洲精品自在久久77 | 久久国产免费观看精品 | 最新中文字幕一区二区乱码 | 色老头老太xxxxbbbb | 日日狠狠久久偷偷四色综合免费 | 2020年新四虎免费 | a级毛片毛片免费观看久潮 a级毛片免费 | 国产精品亚洲二区在线 | 久久精品国产400部免费看 | 亚洲国产欧美精品 | 久久麻豆亚洲精品 | 咪咪色在线视频 | 羞羞色男人的天堂伊人久久 | 91精品全国免费观看青青 | 欧美激情一区二区三区视频 | 99久久99这里只有免费的精品 | 国内精品久久久久久久aa护士 | 激情影院a | 国产美女拍拍拍在线观看 | 九九在线精品视频xxx | 99久久免费费视频在线观看 | 99久久成人 | 深夜在线小视频 | 精品午夜国产在线观看不卡 | 91在线 | 欧美 | 精品久久久在线观看 | 精品国产自在现线看久久 | 中文字幕伊人久久网 | 夜夜爽夜夜 | 青青青青久久国产片免费精品 | 九九综合九九 | 国产精品a v 免费视频 | 久久青草18免费观看网站 | 中文字幕毛片 | 91资源在线视频 | 成人亚洲欧美日韩在线观看 | 国产香港特级一级毛片 | 日本午夜在线视频 | 国产精品视频免费一区二区三区 | 国产精品视频分类一区 |