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

C#使用JsonConvert反序列化JSON字符串时报需JSON数组类型错误

问题根因

报错来自JSON结构和反序列化目标类型不匹配:

  • 你提供的待转换JSON根节点是单个对象,最外层用{}包裹,结构上完全对应你定义的Root类
  • 你的代码尝试把它直接反序列化为List<Root>,这个类型对应的是JSON数组(根节点为[]包裹的多元素集合),结构不匹配就会抛出这个错误。
修复方案

你现有的实体类定义完全符合JSON结构,不需要修改,直接调整反序列化的代码即可:

// 直接反序列化为单个Root对象
Root rootInstance = JsonConvert.DeserializeObject<Root>(jsonString);
// 需要取Set1对应的列表直接访问属性即可
List<Set1> set1Data = rootInstance.Set1;

其他可选写法

如果你不想定义Root类,可以直接用JObject解析后提取Set1属性:

using Newtonsoft.Json.Linq;

JObject parsedJson = JObject.Parse(jsonString);
List<Set1> set1Data = parsedJson["Set1"].ToObject<List<Set1>>();

原报错信息:
无法将当前JSON对象(例如 {"name":"value"})反序列化为类型
'System.Collections.Generic.List`1[....Root]',因为该类型要求输入为JSON数组格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:27:17