Newtonsoft JSON反序列化接口

时间:2017-11-13 21:20:56

标签: c# json 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嵌入在字典中。

我也可以在那里放置带有命名空间的完整类名,但我真的无法使其工作。

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

你需要一个包装类:

if A == 1:
    self.checkBox_Answer1.clear()
if A == 2:
    self.checkBox_Answer2.clear()
if A == 3:
    self.checkBox_Answer3.clear()
if A == 4:
    self.checkBox_Answer4.clear()

然后:

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; }
}