【发布时间】:2013-10-28 18:25:56
【问题描述】:
我有以下 Json,我希望在 vb.net 中循环并提取问题和结果。我尝试使用 Newtonsoft.json,但尽管 JSONlint 验证了 Json,但我得到了错误。实现这一目标的正确方法是什么?
{
"Vehicle_Check": [
19,
{
"question": "Brakes",
"result": "OK",
"Fault": ""
},
{
"question": "Water Levels",
"result": "OK",
"Fault": ""
},
{
"question": "Horn",
"result": "OK",
"Fault": ""
},
{
"question": "Washers",
"result": "OK",
"Fault": ""
},
{
"question": "Wipers",
"result": "OK",
"Fault": ""
},
{
"question": "Indicators",
"result": "OK",
"Fault": ""
},
{
"question": "Reflectors",
"result": "OK",
"Fault": ""
},
{
"question": "Oil Levels",
"result": "OK",
"Fault": ""
},
{
"question": "Lights",
"result": "OK",
"Fault": ""
},
{
"question": "Mirrors",
"result": "OK",
"Fault": ""
},
{
"question": "Steering",
"result": "OK",
"Fault": ""
},
{
"question": "Tyres Wheels",
"result": "OK",
"Fault": ""
},
{
"question": "Battery",
"result": "OK",
"Fault": ""
},
{
"question": "Fuel or Oil Leaks",
"result": "OK",
"Fault": ""
},
{
"question": "Other",
"result": "OK",
"Fault": ""
}
]
}
我用来解析 Json 的代码是:
Dim o As JObject = JObject.Parse(VCItem.Check)
Dim results As List(Of JToken) = o.Children().ToList
For Each item As JProperty In results
item.CreateReader()
Select Case item.Name
'process data here
End Select
Next
这仅返回最后一个元素:
{[
19,
{
"question": "Other",
"result": "OK",
"Fault": ""
}
]}
【问题讨论】:
-
您遇到什么错误?
-
我们可以看到您尝试用来进行反序列化的代码吗?
-
@user1898898 你应该编辑你的问题并将代码放在那里,而不是在评论中。
-
Select Case代码里面是什么?你将process data here逻辑的结果存储到一个变量中是什么?换句话说,什么“只”包含最后一个元素? -
item.Name 持有:{[ 19, { "question": "Other", "result": "OK", "Fault": "" } ]}