无法反序列化json接口集合

时间:2018-01-13 10:27:31

标签: c# json json.net

我用c#编写类和接口,如下所示:

public interface ITestClass
{
     string Name { get; set; }
     int Age { get; set; }

     List<ITestClass> Tests { get; set; }
}

public class TestClass :ITestClass
{
    public string Name { get; set; }
    public int Age { get; set; }

    public List<ITestClass> Tests { get; set; }
}

我想序列化&amp;使用newtonsoft json反序列化创建的对象:

var testObj = new TestClass() { Name = "Roberto", Age = 43 };
testObj.Tests = new List<ITestClass>();
testObj.Tests.Add(new TestClass() { Name = "Mario", Age = 84 });

var serializedJsonString= JsonConvert.SerializeObject(testObj);
var documentObject = JsonConvert.DeserializeObject<ITestClass>(serializedJsonString);

deserailization失败并显示错误消息:

  

Newtonsoft.Json.JsonSerializationException:&#39;无法创建Model.ITestClass类型的实例。 Type是接口或抽象类,无法实例化。路径&#39;名称&#39;,第1行,第8位。&#39;

下面是序列化的json字符串:

{
    "Name": "Roberto",
    "Age": 43,
    "Tests": [
        {
            "Name": "Mario",
            "Age": 84,
            "Tests": null
        }
    ]
}

请帮忙。

0 个答案:

没有答案