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

VB.NET中JSON反序列化失败求助(需提取Select_Store字段)

问题分析与解决方案

我一眼就看出问题的核心了——你的类结构和JSON响应的键完全不匹配,这才导致反序列化失败,哪怕你加了所有字段也没用,因为顶级数组的名称就对不上!

具体问题点

  • JSON里的顶级数组键是Store_Money_Snapshot,但你的RootObject类里对应的属性是Zoho_List,反序列化器根本找不到对应的匹配项。
  • 另外,其实你只需要提取Select_Store字段,完全没必要把JSON里的所有字段都加到类里,Json.NET会自动忽略那些没定义的字段。

修正后的代码

首先调整你的类结构,让属性名称和JSON的键对应上:

Public Class ZohoList
    Public Property Select_Store As String
End Class

Public Class RootObject
    Public Property Store_Money_Snapshot As List(Of ZohoList)
End Class

注:这里我简化了属性的写法,VB.NET支持自动属性,不用手动写Get/Set和私有字段,更简洁。

然后修改你的反序列化代码,对应调整属性名称:

' 反序列化JSON响应
Dim myO = JsonConvert.DeserializeObject(Of RootObject)(response)
' 获取对应的列表
Dim items = myO.Store_Money_Snapshot
' 遍历提取Select_Store值
For Each item In items
    lTodo.Add(item.Select_Store.ToString)
    ' 后续代码
Next

这样修改后,反序列化就能正常工作了,因为类的属性名称和JSON的键完全匹配,而且只保留了你需要的字段,代码更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:25:17