【问题标题】:Deserialize JSON text to a specific object type using the Type name [duplicate]使用类型名称将 JSON 文本反序列化为特定对象类型
【发布时间】:2015-11-29 01:07:01
【问题描述】:

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

Trainer myTrainer = JsonConvert.DeserializeObject<Trainer>(sJsonText);

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

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

Type myType = Type.GetType("Trainer");
var jobj = JsonConvert.DeserializeObject<myType >(sJsonText);

但不幸的是,出现了以下错误:

CS0118  'myType' is a variable but is used like a type

有没有一种方法可以使用字符串引用一个类?

【问题讨论】:

    标签: c# json dynamic json.net


    【解决方案1】:

    使用JsonConvert.DeserializeObject(string, Type):

    var jobj = JsonConvert.DeserializeObject(sJsonText, myType);
    

    或者如果你喜欢

    dynamic jobj = JsonConvert.DeserializeObject(sJsonText, myType);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多