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

.NET 3.1使用Newtonsoft.Json反序列化JSON为对象列表报错如何解决

问题解决方法

错误根因

你当前的JSON根节点是单个JSON对象(外层用{}包裹),但反序列化目标类型指定为IEnumerable<Format>集合类型,集合类型要求JSON根必须是数组(外层用[]包裹),二者结构不匹配导致序列化失败。

解决方案

方案1:不修改JSON,调整反序列化代码(推荐)

你的Format实体类已经完全匹配JSON根对象的结构,直接反序列化为Format类型即可:

// 直接反序列化为单个Format对象
Format formatResult = JsonConvert.DeserializeObject<Format>(File.ReadAllText("mockJson.json"));

// 如果确实需要得到List<Format>结构,手动将对象加入列表即可
List<Format> objects = new List<Format> { formatResult };

// 如果你要获取的是内部的Data列表,直接访问属性即可
List<Data> dataList = formatResult.Data;

方案2:修改JSON结构适配集合反序列化

如果业务上确实需要反序列化为集合,将你的JSON外层加上[]改为数组格式即可:

[
  {
     "Id":"2727",
     "Region":"US",
     "Data":[
        {
           "Title":"Director",
           "JobDescription":"Coordinates the department activity",
           "Department":"HR"
        },
        {
           "Title":"Programmer",
           "JobDescription":"Enterprise software developer",
           "Department":"FR"
        }
     ]
  }
]

修改后你原来的反序列化代码可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:45:03