Как типизировать объектный класс из значения словаря (объекта)

Как я могу исправить ошибку 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);
        }

Надежда Помогает!

Другие вопросы по тегам