当我尝试估算一个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