第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Newtonsoft JSON.NET將JSON反序列化為IEnumerable

如何使用Newtonsoft JSON.NET將JSON反序列化為IEnumerable

泛舟湖上清波郎朗 2019-09-24 10:49:11
給出以下JSON:[  {    "$id": "1",    "$type": "MyAssembly.ClassA, MyAssembly",    "Email": "me@here.com",  },  {    "$id": "2",    "$type": "MyAssembly.ClassB, MyAssembly",    "Email": "me@here.com",  }]和這些類:public abstract class BaseClass{    public string Email;}public class ClassA : BaseClass{}public class ClassB : BaseClass{}如何將JSON反序列化為:IEnumerable<BaseClass> deserialized;我不能使用,JsonConvert.Deserialize<IEnumerable<BaseClass>>()因為它抱怨那BaseClass是抽象的。
查看完整描述

3 回答

?
慕雪6442864

TA貢獻1812條經(jīng)驗 獲得超5個贊

你需要:


 JsonSerializerSettings settings = new JsonSerializerSettings

                 {

                     TypeNameHandling = TypeNameHandling.All

                 };


string strJson = JsonConvert.SerializeObject(instance, settings);

所以JSON看起來像這樣:


{

  "$type": "System.Collections.Generic.List`1[[MyAssembly.BaseClass, MyAssembly]], mscorlib",

  "$values": [

    {

      "$id": "1",

      "$type": "MyAssembly.ClassA, MyAssembly",

      "Email": "me@here.com",

    },

    {

      "$id": "2",

      "$type": "MyAssembly.ClassB, MyAssembly",

      "Email": "me@here.com",

    }

  ]

}

然后您可以反序列化它:


BaseClass obj = JsonConvert.DeserializeObject<BaseClass>(strJson, settings)


查看完整回答
反對 回復(fù) 2019-09-24
?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

反序列化時使用以下JsonSerializerSettings構(gòu)造:


new JsonSerializerSettings()

{

    TypeNameHandling = TypeNameHandling.Objects

})


查看完整回答
反對 回復(fù) 2019-09-24
  • 3 回答
  • 0 關(guān)注
  • 724 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號