【发布时间】:2016-06-01 16:20:10
【问题描述】:
所以后续工作正常,从字符串 json 给我一个 Team 对象:
var found = JsonConvert.DeserializeObject<Team>(json);
但是如果我直到运行时才知道类型怎么办?假设我有上面的字符串 json,但我还有另一个类型名称的字符串?例如,这不起作用:
var found = JsonConvert.DeserializeObject(json, Type.GetType("Team"));
无法将“Newtonsoft.Json.Linq.JArray”类型的对象转换为类型...
【问题讨论】:
-
可以用模板版吗?
JsonConvert.DeserializeObject<T>(json) -
直到运行时我才知道 T。我有一个字符串告诉我要反序列化的类型。
-
如果你有一个 JArray,它不会是一个对象 - 你可能需要为你的类型构建一个 IEnumerable 类型。