0

我有以下 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,因为col调用后方法的变量(IList)Reflection.Instance.FastCreateInstance(pt);为null。所以之后,当它尝试添加已解析的字典时,它会引发异常。

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

提前致谢。

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

4

1 回答 1

0

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

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

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

public class PersonContext
{
   public List<Person> Persons { get; set; }
}
于 2015-06-17T08:41:37.703 回答