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