所以followwing工作正常,给我一个来自字符串json的Team对象:
var found = JsonConvert.DeserializeObject<Team>(json);
但如果直到运行时我才知道类型怎么办?假设我有上面的字符串json,但我还有另一个字符串类型名称?例如,这不起作用:
var found = JsonConvert.DeserializeObject(json, Type.GetType("Team"));
无法将“Newtonsoft.Json.Linq.JArray”类型的对象强制转换为...
答案 0 :(得分:8)
这对我有用:
var type = Type.GetType("My.Namespace.Class");
var myObj = JsonConvert.DeserializeObject(item, type);
诀窍是通过提供正确的类名来确保type
不为null。如果是,反序列化仍然可以工作,但输出将不是您想要的类型。有关GetType
的详细信息,请参阅MSDN。