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

JSON数组反序列化报错求助:无法将数组转为对象

问题分析与解决方案

嘿,我一眼就看穿问题所在了!你碰到的这个反序列化错误,核心原因特别清晰:

Cannot deserialize the current Json array because the type requires a JSON object...

这个报错直白告诉你——你的API返回的是一个JSON数组(用[]包裹的多个对象),但你却试图把它反序列化成单个Class1对象,这就像你拿着一整盒巧克力,非要把它当成一块巧克力来拆,肯定会出问题的呀!

两步帮你搞定:

  1. 修正反序列化的目标类型
    既然JSON是数组,那你得把反序列化的目标改成集合类型,比如List<Class1>或者Class1[](数组)。把控制器里的代码改成下面这样:

    // 用List接收数组
    List<Class1> items = JsonConvert.DeserializeObject<List<Class1>>(responseData);
    // 或者用数组接收
    // Class1[] items = JsonConvert.DeserializeObject<Class1[]>(responseData);
    
  2. 确保类属性和JSON字段正确映射
    你现在的Class1类里属性都是something,这和JSON里的heading、company name、href完全不匹配,就算类型对了也没法正确解析。推荐用JsonProperty特性来做映射,既符合C#的命名规范,又能对应JSON里的字段:

    public class Class1 : ParentObject 
    {
        [JsonProperty("heading")]
        public string Heading { get; set; }
    
        [JsonProperty("company name")]
        public string CompanyName { get; set; }
    
        [JsonProperty("href")]
        public string Href { get; set; }
    }
    

做完这两步,再运行代码试试,应该就能顺利把JSON数组反序列化成对应的对象集合啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:03:18