gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 20:24:53 25 4
gpt4 key购买 nike

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

 Object someObject1 = someObject;
string result = await content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<someObject1.GetType()>(result);

最后一行抛出异常

 operator '<' cannot be applied to operands of type 'method group'

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

最佳答案

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

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

JsonConvert.PopulateObject(result, someObject1 );

关于c# - 将 json 动态反序列化为传入的任何对象。 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25672338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com