对于 person 对象,我有一个简单的 POCO,如下所示:
public class Person
{
public int PersonId {get; set;}
public string FirstName {get; set;}
public string MiddleName {get; set;}
public string LastName {get; set;}
public char Gender {get; set;}
}
我有以下代码查询我的 DocumentDb 数据库中的 People 集合。
private async static Task<List<Person>> GetPeopleList(string colSelfLink)
{
dynamic doc = client.CreateDocumentQuery<Document>(colSelfLink, "SELECT p.PersonId, p.FirstName, p.MiddleName, p.LastName, p.Gender FROM People p").AsEnumerable().FirstOrDefault();
List<Person> peopleList = new List<Person>();
if (doc != null)
{
peopleList = doc;
}
return peopleList;
}
当我运行此代码时,我收到以下错误:
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.List`1[MyApp.Person]”,因为该类型需要 JSON 数组(例如 [1,2, 3])正确反序列化。要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型,使其成为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型可以从 JSON 对象反序列化的数组或列表。JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。路径“PersonId”,第 1 行,位置 48。
如何将来自我的查询的 JSON 对象转换为 Person 对象?在我的 MVC 应用程序中,模型绑定器做得很好,但它在单独的类库中运行。我应该如何转换这个 JSON 对象?