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

VB.NET反序列化无根元素JSON字符串失败,求解决方案

解决VB.NET反序列化无根JSON数组的问题

核心错误分析

  1. 类名不匹配:你定义的实体类是TestClass,但反序列化时却用了FattureAC2类型,JSON字段无法映射到错误的类,直接导致反序列化失败。
  2. 变量类型不匹配:ListaFatture被声明为单个FattureAC2对象,但你的JSON是数组结构,变量类型应该对应集合类型(如IEnumerable(Of TestClass)或List(Of TestClass))。

修正后的完整代码

1. 确保实体类与JSON字段一致

保留你的TestClass(如果FattureAC2是笔误,直接使用该类;如果FattureAC2是实际类名,需确保它的属性和JSON字段完全对应):

Public Class TestClass
    Public Property ID As String
    Public Property DataIns As String
    Public Property NumeroFattura As String
    Public Property DataFattura As String
    Public Property RagSocMit As String
End Class

2. 修正反序列化逻辑

Dim result As String = ""
' 变量类型改为集合类型,匹配JSON数组结构
Dim ListaFatture As IEnumerable(Of TestClass)
' ... 此处是获取JSON字符串的代码
result = reader.ReadToEnd()
' 反序列化时使用正确的实体类类型
ListaFatture = JsonConvert.DeserializeObject(Of IEnumerable(Of TestClass))(result)

如果需要更方便的集合操作,也可以用List(Of TestClass):

Dim ListaFatture As List(Of TestClass)
ListaFatture = JsonConvert.DeserializeObject(Of List(Of TestClass))(result)

额外排查项

如果修正后仍返回Nothing,检查以下内容:

  • 确认result变量确实包含完整有效的JSON字符串,无多余空格、BOM头或无效字符。
  • 核对JSON字段名和类属性名的拼写(Newtonsoft.Json默认不区分大小写,但拼写必须完全一致)。
  • 确保已通过NuGet安装并引用Newtonsoft.Json库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:15:19