如何使用Property IList <dobj>对json序列化或json反序列化对象?</iobj>

时间:2013-04-12 08:24:59

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

我有一个带接口列表属性的Object。我需要序列化和反序列化此对象。我正在使用newton json进行序列化,它将对象转换为json,但是当我取消这个json以反对它的crate错误'无法创建实例'时。我的班级就像这样

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

1 个答案:

答案 0 :(得分:2)

这是因为它不知道使用哪种类型将IFilter反序列化(默认情况下JsonSerializer为List<>选择IList<>) - 你需要在声明,例如asssuming 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; }