使用类型名称将JSON文本反序列化为特定对象类型

Heb*_*aah 3 c# json dynamic json.net

我曾经使用下面的代码将JSON文本反序列化为强类型对象

Trainer myTrainer = JsonConvert.DeserializeObject<Trainer>(sJsonText);
Run Code Online (Sandbox Code Playgroud)

现在我需要将反序列化JSON文本转换为特定类型,只知道类型的名称.

我尝试使用Reflection从其名称中获取Type,然后将此类型与JsonConvert一起使用,如下所示:

Type myType = Type.GetType("Trainer");
var jobj = JsonConvert.DeserializeObject<myType >(sJsonText);
Run Code Online (Sandbox Code Playgroud)

但不幸的是,下面的错误显示出来:

CS0118  'myType' is a variable but is used like a type
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用字符串引用类?

dbc*_*dbc 8

用途 JsonConvert.DeserializeObject(string, Type):

var jobj = JsonConvert.DeserializeObject(sJsonText, myType);
Run Code Online (Sandbox Code Playgroud)

或者如果你愿意的话

dynamic jobj = JsonConvert.DeserializeObject(sJsonText, myType);
Run Code Online (Sandbox Code Playgroud)