14

したがって、フォローイングは問題なく機能し、文字列 json から Team オブジェクトを取得します。

var found = JsonConvert.DeserializeObject<Team>(json);

しかし、実行時までタイプがわからない場合はどうなりますか? 上記のように文字列 json があるとしますが、型名を持つ別の文字列もありますか? たとえば、これは機能していません:

var found = JsonConvert.DeserializeObject(json, Type.GetType("Team"));

タイプ「Newtonsoft.Json.Linq.JArray」のオブジェクトをタイプにキャストできません...

4

1 に答える 1

16

これは私のために働いた:

var type = Type.GetType("My.Namespace.Class");
var myObj = JsonConvert.DeserializeObject(item, type);

トリックはtype、正しいクラス名を指定して null でないことを確認することです。そうであれば、デシリアライゼーションは引き続き機能しますが、出力は必要なタイプにはなりません。の詳細については、 MSDNを参照してくださいGetType

于 2012-10-10T20:45:22.360 に答える