У меня есть простой объект 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;}
}
У меня есть следующий код, который запрашивает коллекцию People в моей базе данных DocumentDb.
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?
FirstOrDefault()
возвращает один объект (или null). Его результат не может быть назначен списку. - person Anthony Chu   schedule 05.09.2014List<Person> peopleList = client.CreateDocumentQuery<Person>(colSelfLink, "...").AsEnumerable().ToList();
- person Anthony Chu   schedule 05.09.2014