使用类型名称将 JSON 文本反序列化为特定对象类型
Deserialize JSON text to a specific object type using the Type name
我曾经使用下面的代码将 JSON 文本反序列化为强类型对象
Trainer myTrainer = JsonConvert.DeserializeObject<Trainer>(sJsonText);
现在我需要将反序列化 JSON 文本转换为仅知道类型名称的特定类型。
我尝试使用反射从其名称中获取类型,然后将此类型与 JsonConvert 一起使用,如下所示:
Type myType = Type.GetType("Trainer");
var jobj = JsonConvert.DeserializeObject<myType >(sJsonText);
但不幸的是,出现了以下错误:
CS0118 'myType' is a variable but is used like a type
有没有一种方法可以使用字符串引用 class?
使用JsonConvert.DeserializeObject(string, Type)
:
var jobj = JsonConvert.DeserializeObject(sJsonText, myType);
或者如果您愿意
dynamic jobj = JsonConvert.DeserializeObject(sJsonText, myType);
我曾经使用下面的代码将 JSON 文本反序列化为强类型对象
Trainer myTrainer = JsonConvert.DeserializeObject<Trainer>(sJsonText);
现在我需要将反序列化 JSON 文本转换为仅知道类型名称的特定类型。
我尝试使用反射从其名称中获取类型,然后将此类型与 JsonConvert 一起使用,如下所示:
Type myType = Type.GetType("Trainer");
var jobj = JsonConvert.DeserializeObject<myType >(sJsonText);
但不幸的是,出现了以下错误:
CS0118 'myType' is a variable but is used like a type
有没有一种方法可以使用字符串引用 class?
使用JsonConvert.DeserializeObject(string, Type)
:
var jobj = JsonConvert.DeserializeObject(sJsonText, myType);
或者如果您愿意
dynamic jobj = JsonConvert.DeserializeObject(sJsonText, myType);