0

如何修复类型转换错误...
我想使用 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);
4

1 回答 1

1

你得到字符串字典,Person 并转换为 Person,这就是它抛出异常的原因。

尝试 var person = JsonConvert.DeserializeObject<Person>((dic["data"].ToString()));

代替Person p2 = (Person)dic["data"];

并且person.age25

编辑:

  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);
        }

希望有帮助!

于 2016-01-16T08:41:58.607 回答