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

如何将JObject列表反序列化为自定义.NET对象列表?

将List转换为自定义.NET对象列表的方法

方法1:使用LINQ Select(最简洁)

直接通过LINQ的Select遍历每个JObject,调用ToObject<MyModel>()完成单个转换,最后用ToList()生成目标列表:

List<MyModel> myModelList = lst.Select(jObj => jObj.ToObject<MyModel>()).ToList();

方法2:手动遍历循环(适合需要额外处理的场景)

如果需要在转换过程中对每个对象做验证、补全默认值等操作,手动循环更灵活:

List<MyModel> myModelList = new List<MyModel>();
foreach (JObject jObj in lst)
{
    MyModel model = jObj.ToObject<MyModel>();
    // 这里可以添加自定义处理逻辑,比如:
    // if (model.Id == 0) model.Id = Guid.NewGuid();
    myModelList.Add(model);
}

方法3:序列化后反序列化(备选方案)

借助Newtonsoft.Json的序列化/反序列化能力,将整个List<JObject>序列化为JSON字符串,再反序列化为List<MyModel>。这种方式效率略低于前两种,但在某些复杂场景下可用:

List<MyModel> myModelList = JsonConvert.DeserializeObject<List<MyModel>>(JsonConvert.SerializeObject(lst));

注意事项

  • 确保MyModel类的属性名称与JObject中的字段名一致,若名称不匹配,可使用[JsonProperty("字段名")]特性进行映射。
  • 转换前需确认JObject的结构与MyModel兼容,避免因字段缺失或类型不匹配导致的转换异常。

内容的提问来源于stack exchange,提问作者Sandeep Thomas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:35:27