簡體   English   中英

Newtonsoft JSON反序列化接口

[英]Newtonsoft JSON Deserialize Interface

我反序列化以下示例JSON代碼段時遇到問題:

{
   "list":{
       "A":{"ClassA":{"PropertyA":"test"}},
       "B":{"ClassB":{"PropertyB":"test"}}
    }
}

使用我的ClassA:

public class ClassA:IInterface{
   public String PropertyA{get; set;}
}
public class ClassB:IInterface{
   public String PropertyB{get; set;}
}

我希望JsonConverter用JSON中的PropertyA或PropertyB創建一個ClassA或ClassB。 ClassA或ClassB嵌入在Dictionary中。

我也可以將完整的類名和名稱空間放在這里,但是我真的無法使其工作。

預先感謝您的任何幫助

您需要一個包裝器類:

public class ListClass
{
    public WrapperList List { get; set; }
}

public class WrapperList
{
    public WrapperA A { get; set; }
    public WrapperB B { get; set; }
}

public class WrapperA
{
    public ClassA ClassA { get; set; }
}

public class WrapperB
{
    public ClassB ClassB { get; set; }
}

public class ClassA : IInterface
{
    public String PropertyA { get; set; }
}

public class ClassB : IInterface
{
    public String PropertyB { get; set; }
}

然后:

var list = JsonConvert.DeserializeObject<ListClass>(json);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM