使用运行时类型将JObject转换为System.Object

时间:2014-09-29 09:53:40

标签: c# json parsing json.net

我有一个从第三方库收到的大型JSON字符串(因此,我无法更改其格式)。我使用JsonConvert.DeserializeObject反序列化它。然后,这个新创建的对象的两个属性是:JObject及其对应的System.Type。因此,我需要实现下面的方法,将其解析为运行时System.Type。

中已知的System.Object
object ConvertJObjectToObject(Type t, JObject o)
{
    return ........
}

JObject.ToObject是一种通用方法,仅适用于编译类型。 JsonConvert.DeserializeObject需要JSON字符串作为它的第一个参数,但我在这个阶段解析了JObject,并且不想在JObject上调用ToString()。

有没有优雅的方法来实现这个目标?

1 个答案:

答案 0 :(得分:2)

有一个重载,它将Type作为参数:

return o.ToObject(t);