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

ホープ・ヘルプズ!

于 2016-01-16T08:41:58.607 に答える