无法将当前的JSON阵列(例如1 2 3)化为类型



当我尝试估算一个JSON字符串时,我会遇到错误:

无法对当前的JSON阵列(例如[1,2,3])...

vb.net代码:

Public Class DATA
    Public Property CPU As String
End Class
Dim data As DATA = JsonConvert.DeserializeObject(Of DATA)(File.ReadAllText("laptop.json"))
TextBox25.Text = DATA.CPU

json文件:

[
  {
    "spec": "CPU";
    "value": "Intel Core i3-4005U"
  };
  {
    "spec": "Speed";
    "value": "1.7 GHz"
  };
  {
    "spec": "Cache";
    "value": "3MB"
  };
  {
    "spec": "RAM";
    "value": "4GB"
  };
  {
    "spec": "Warranty Period";
    "value": "1 Year"
  }
]

如何解决此错误?

这里有三个问题。

首先,正如您所证明的那样,JSON无效。JSON对象中的属性和JSON数组中的值必须通过逗号(,)而不是分号(;)分开。请参阅json.org。

第二,您的JSON代表项目的数组(或列表),但是您试图将其归类为单个类。您需要对这样的列表进行验证:

Dim json As String = File.ReadAllText("laptop.json")
Dim list As List(Of DATA) = JsonConvert.DeserializeObject(Of List(Of DATA))(json)

第三,您使用的DATA类中的属性名称与数组中对象的JSON属性名称不匹配。应该这样定义类:

Class DATA
    Public Property spec As String
    Public Property value As String
End Class

小提琴:https://dotnetfiddle.net/0ai2c3

相关内容

  • 没有找到相关文章

最新更新