Newtonsoft.Json反序列化报错:Type is an interface or abstract class and cannot be instantiated

  Newtonsoft.Json反序列化复杂类型,其中包含接口类型时出错,错误信息:Type is an interface or abstract class and cannot be instantiated。

解决方案:序列化和反序列化时添加JsonSerializerSettings,属性TypeNameHandling设置为TypeNameHandling.All。作用:就是设置Json.NET能够序列化接口或继承类的关键,将TypeNameHandling设置为All后,Json.NET会在序列化后的json文本中附加一个属性说明json到底是从什么类序列化过来的,也可以设置TypeNameHandling为Auto,表示让Json.NET自动判断是否需要在序列化后的json中添加类型属性,如果序列化的对象类型和声明类型不一样的话Json.NET就会在json中添加类型属性,反之就不添加

 

2017-10-31

posted @ 2017-10-31 15:21  ylit  阅读(2323)  评论(0编辑  收藏  举报