У меня проблема (кажется базовой) с отображением десериализованных данных JSON в datagridview
.
У меня есть простой Person
класс:
class Person
{
public int age { get; set; }
public string name { get; set; }
public string school { get; set; }
}
И список из пяти человек:
Person p1 = new Person() { age = 12, name = "Peter", school = "s1" };
Person p2 = new Person() { age = 13, name = "Jack", school = "s2" };
Person p3 = new Person() { age = 14, name = "William", school = "s2" };
Person p4 = new Person() { age = 15, name = "Emily", school = "s2" };
Person p5 = new Person() { age = 16, name = "Sophie", school = "s1" };
List<Person> persons = new List<Person>() { p1, p2, p3, p4, p5 };
и группировка в этом списке:
var result = from n in persons group n by n.school;
Тогда ( проблема здесь ) у меня есть процесс сериализации / десериализации:
var serialized = Newtonsoft.Json.JsonConvert.SerializeObject(result);
var deserialized = Newtonsoft.Json.JsonConvert.DeserializeObject(serialized);
И, к сожалению, я не могу показать десериализованный результат (в данном примере это "s1" и "s2") в datagridview
:
//failed! :(
dataGridView1.DataSource = deserialized;
Где проблема?
Примечание 1: это простая демонстрация моей проблемы. в реальной программе у меня нет доступа к «лицам». и имена полей (возраст, имя, школа, ...) неизвестны. все, что у меня есть, это сериализованные данные (форма переменной «result»). другими словами, переменная «result» - это черный ящик.
Примечание2: Насколько я знаю, проблема возникает только в сгруппированных данных. так что все будет хорошо, если «результат» (черный ящик) не содержит группировки. но моя проблема в десериализации сгруппированных данных.