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

Visual Basic中JSON反序列化报错:无法将对象转为List<AgentGroup>

解决VB中JSON反序列化的类型不匹配错误

嘿,我之前也踩过这个一模一样的坑!先看看你碰到的错误提示:

Cannot deserialize the current JSON object (e.g. {"name":"value"} ) into type System.Collections.Generic.List`1[AgentGroup] because the type requires a JSON array (e.g. [1,2,3] ) to deserialize correctly.

简单说就是你代码里要反序列化到List(Of AgentGroup)这个集合类型,但实际拿到的JSON是单个对象格式——集合类型只认用[]包裹的JSON数组,单个对象自然就匹配不上了。给你两个直接可行的解决办法:

  • 修改JSON格式为数组:哪怕只有一个AgentGroup对象,也要把它放进数组里。比如原来的JSON是:

    {"id": 1, "groupName": "Customer Support"}
    

    改成数组格式:

    [{"id": 1, "groupName": "Customer Support"}]
    

    这样List(Of AgentGroup)就能正常解析这个JSON了。

  • 调整反序列化的目标类型:如果确定接口返回的就是单个AgentGroup对象,那没必要硬用集合。把代码里的目标类型改成AgentGroup就行。比如原来的代码可能是:

    Dim agentGroups As List(Of AgentGroup) = JsonConvert.DeserializeObject(Of List(Of AgentGroup))(jsonData)
    

    修改成:

    Dim agentGroup As AgentGroup = JsonConvert.DeserializeObject(Of AgentGroup)(jsonData)
    

    这样单个对象的JSON就能完美匹配了。

如果之后你遇到有时候返回单个对象、有时候返回数组的情况,还可以加个简单判断:检查JSON字符串的第一个字符是不是[,再动态选择反序列化的类型,不过先解决当前问题的话,上面两个方法就足够啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:44:58