将 JSON 数据反序列化为 IDbSet <T>的问题



>我有以下json数据:

{
    "Persons": [
        { "Person": { "FirstName":"A", "Surname": "B" } },
        { "Person": { "FirstName":"C", "Surname": "D" } },
        { "Person": { "FirstName":"E", "Surname": "F" } }
    ]
}

我的类定义是:

public class PersonContext
{
    public IDbSet<Person> Persons { get; set; }
}
public class Person
{
    public string FirstName { get; set; }
    public string Surname { get; set; }
}

当我使用 fastJSON 将其反序列化为对象时,我收到一个NullReferenceException

PersonContext context = fastJSON.JSON.ToObject<PersonContext>(jsonText);

调试fastJSON的源代码时,CreateGenericList抛出异常,因为调用(IList)Reflection.Instance.FastCreateInstance(pt);后方法的col变量为空。因此,当它尝试添加解析的字典时,它会引发异常。

是否可以配置序列化过程以确保正确处理IDbSet<T>对象?

提前谢谢。

PS:您也可以在github中克隆我的存储库以重现此问题。

这是Mehdi Gholam先生(fastJSON所有者)在此线程上对我的问题的回答:

fastJSON 需要具体的类型,而不是要定义的接口,以便它知道要创建什么类型。

因此,请将您的代码更改为:

public class PersonContext
{
   public List<Person> Persons { get; set; }
}

相关内容

  • 没有找到相关文章

最新更新