У меня есть следующая строка JSON:
[
{ "Person" : { "Name" : "John", "Gender" : "male" } },
{ "Person" : { "Name" : "John", "Gender" : "male" } }
]
(Как вы можете заметить, к сожалению, у меня есть своего рода «корневой» элемент для каждого объекта в массиве. Без этого «корневого» элемента задача становится довольно тривиальной.)
Я должен десериализовать его в список Person
класса:
class Person {
public string Name { get; set; }
public string Gender { get; set; }
}
...
List<Person> ListPersons() {
return JsonConvert.DeserializeObject<List<Person>>(jsonString);
}
Можно ли сделать с Json.NET без создания класса-оболочки, такого как PersonResult?
class PersonResult {
public Person Person { get; set; }
}
...
List<Person> ListPersons() {
return JsonConvert.DeserializeObject<List<PersonResult>>(jsonString)
.Select(p => p.Person)
.ToList();
}
Идеальное решение для меня - это возможность как-то явно указать этот «корень» (например, через атрибут) и не создавать никаких оболочек, помощников и т. Д.