Как типизировать объектный класс из значения словаря (объекта)
Как я могу исправить ошибку typecast...
Я хочу создать новый мой объект, используя JSON.
Я приложил пример кода..
public class Person
{
public int age;
public Person(int _age)
{
this.age = _age;
}
}
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("type", "Person");
dic.Add("data", new Person(25));
string json = JsonConvert.SerializeObject(dic);
dic = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
Person p2 = (Person)dic["data"];
Console.WriteLine(p2);
1 ответ
Вы получаете словарь строк,Person и приведение к Person, поэтому он вызывает исключение.
Пытаться var person = JsonConvert.DeserializeObject<Person>((dic["data"].ToString()));
вместоPerson p2 = (Person)dic["data"];
А также person.age
будет 25
,
РЕДАКТИРОВАТЬ:
public MainWindow()
{
InitializeComponent();
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("type", "Person");
dic.Add("data", new Person(25));
string json = JsonConvert.SerializeObject(dic);
dic = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
var person = JsonConvert.DeserializeObject<Person>((dic["data"].ToString()));
Console.WriteLine(person.age);
}
Надежда Помогает!