You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中根据类名反序列化对象列表?

解决方案

要反序列化JSON数组为对应类的列表,只需基于你找到的单个对象类型,创建泛型List<T>的类型后传入反序列化方法即可,具体修改如下:

修改后的核心代码

// 获取单个对象的目标类型
Type objValueType = ByName(this.className);
// 创建绑定到目标类型的泛型List<T>类型
Type listType = typeof(List<>).MakeGenericType(objValueType);
// 反序列化JSON数组为对应类型的列表
object deserializedList = JsonConvert.DeserializeObject(json, listType);

关键说明

  • typeof(List<>)获取的是泛型列表的开放构造类型,通过MakeGenericType(objValueType)将其绑定到你动态获取的对象类型,得到具体的List<YourTargetType>类型。
  • 若需要反序列化为数组而非List,可改用objValueType.MakeArrayType()创建数组类型,代码示例:
    Type arrayType = objValueType.MakeArrayType();
    object deserializedArray = JsonConvert.DeserializeObject(json, arrayType);
    

完整调用示例

结合你原有的ByName方法,完整调用逻辑如下:

string json = "[{...}, {...}]"; // 你的JSON数组字符串
Type objValueType = ByName(this.className);
Type listType = typeof(List<>).MakeGenericType(objValueType);
object result = JsonConvert.DeserializeObject(json, listType);

// 若需后续操作,可通过反射遍历列表元素,或根据业务场景尝试强转

内容的提问来源于stack exchange,提问作者a-x-i

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:07:10