我正在轉換使用NewtonSoft.JsonNet編寫的代碼。這實際上是一個自定義Json媒體類型格式化程序。我必須改變它,因爲Json.Net已經證明其負載下的性能非常差。互聯網上的許多比較也證明了這一點。Json反序列化和控制實例化
無論如何,我有一個基本類型,稱爲CatalogueItem
。有三種類型來源於此類型,分別稱爲ContainerItem
,SectionItem
和RefresherItem
。基於名爲itemType
的Json對象中的屬性,我們決定必須實例化哪個子類。
var type = (string)jsonObject.Property("itemType");
switch (type)
{
case "Container":
return new ContainerItem();
case "Section":
return new SectionItem();
case "Refresher":
return new RefresherItem();
}
我們使用了創建自定義CustomCreationConverter
,並將其添加到Serializer.Converters
收集Json.Net.Serializer
做到這一點。試圖擺脫Json.Net,我使用,但我不知道如何控制使用它生成的類型。任何人都可以幫助我嗎?
p.s.我在StackOverflow中發現了這個帖子,其中類似的問題已經得到解答。但是,我從第三方Web服務獲取json,因此我不能在其中包含類型名稱。另外,我不能使用通用版本JsConfig
,因爲MediaTypeFormatter
沒有任何通用方法。
即使它沒有幫助你,你能否將你的問題與你提到的其他帖子聯繫起來?這可能有助於他人回答你的問題。 –