c# - 如何使用 Property List<IOBJ> 对对象进行 json 序列化或 json 反序列化?

标签 c# asp.net asp.net-mvc

我有一个带有接口(interface)列表属性的对象。我需要序列化和反序列化这个对象。我正在使用 newton json 进行序列化,它将对象转换为 json,但是当我反序列化此 json 以反对其 crate 错误 'Could not create an instance' 时。我的课是这样的

public class GridFilterModel
{
    public IList<IFilter> Filter { get; set; }       
}

最佳答案

那是因为它不知道使用哪种类型来反序列化 IFilter into (JsonSerializer 默认为 List<> 选择 IList<>) - 您需要在声明中使用此类型,例如假设 Filter : IFilter :

public IList<Filter> Filter { get; set; }

将很好地序列化和反序列化。

更新以下评论

如果您不控制过滤器的类型,那么我建议创建一个包含您关心的所有相关数据的 DTO,然后将其序列化:

public class FilterData
{
  public FilterData(IFilter filter)
  {
    // Copy data from filter argument here into local properties.
  }
}

...

public IList<FilterData> FilterData { get; set; }

关于c# - 如何使用 Property List<IOBJ> 对对象进行 json 序列化或 json 反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15966476/

相关文章:

c# - ASP.MVC 中包含多个分部 View 的复杂 View

c# - 如何从 WCF REST 方法返回自定义类型值的字典作为常规 JSON 对象?

asp.net - Environment.WorkingSet错误

asp.net - IIS 错误,无法在 Web 服务器上启动调试

asp.net-mvc - ASP MVC中的ViewModel和Controller有什么区别

asp.net-mvc - MVC4中的ActionLink没有解决 Controller 中的Action

jquery - Chosen/Select2 jQuery 插件不适用于 IE10

c# - MVC3 中 UI 的单元测试

c# - 从.NET Core项目引用.net标准程序集会导致引用错误

c# - 最近安装的 Microsoft 语音不可用