将 json 动态反序列化为传入的任何对象。 c#

rag*_*ubs 3 c# serialization json json.net

我正在尝试将 json 反序列化为 c# 中的对象。我希望能够做的是传递任何对象获取它的类型并使用 JSON.Net 库将 json 反序列化为该特定对象。这是代码行。

 Object someObject1 = someObject;
 string result = await content.ReadAsStringAsync();
 return JsonConvert.DeserializeObject<someObject1.GetType()>(result);
Run Code Online (Sandbox Code Playgroud)

最后一行抛出异常

 operator '<' cannot be applied to operands of type 'method group'
Run Code Online (Sandbox Code Playgroud)

如何在没有 c# 抱怨的情况下获取 <> 中的数据类型。我该怎么做才能使此代码正常工作?我缺少什么知识?

L.B*_*L.B 5

JsonConvert.DeserializeObject<T>需要一个编译时类型。你不能像你想在运行时那样传递一个类型(与声明 a 没有什么不同List<T>)。您应该反序列化为通用 json 对象JObject(或dynamic),或者您应该创建一个对象的实例并用 json 填充它。

您可以使用静态方法 PopulateObject(当然,如果您的对象的属性您要反序列化的 json匹配)。

JsonConvert.PopulateObject(result, someObject1 );
Run Code Online (Sandbox Code Playgroud)