Ho seguito JSON stringa: (.. Come si può notare, purtroppo, ho una sorta di elemento "root" per ogni oggetto nella matrice Senza questo elemento "root" il compito diventa abbastanza banale)Come deserializzare l'array JSON con l'elemento "root" per ogni oggetto nell'array usando Json.NET?
[
{ "Person" : { "Name" : "John", "Gender" : "male" } },
{ "Person" : { "Name" : "John", "Gender" : "male" } }
]
devo deserializzare in un elenco di Person
classe:
class Person {
public string Name { get; set; }
public string Gender { get; set; }
}
...
List<Person> ListPersons() {
return JsonConvert.DeserializeObject<List<Person>>(jsonString);
}
E 'possibile fare con Json.NET senza creare classe wrapper come PersonResult?
class PersonResult {
public Person Person { get; set; }
}
...
List<Person> ListPersons() {
return JsonConvert.DeserializeObject<List<PersonResult>>(jsonString)
.Select(p => p.Person)
.ToList();
}
La soluzione perfetta per me è quello di essere in grado in qualche modo esplicitamente specificare questa "root" (ad esempio tramite l'attributo) e non crea alcun wrapper, aiutanti, ecc
Sì, purtroppo ho dovuto finire con l'approccio wrapper. Grazie. –