vb.net JSON - 在If Count中使用标签文本

时间:2014-03-15 12:30:00

标签: json vb.net if-statement count

从有效JSON获取的片段

 "stats": [
{
  "stat": 32,
  "amount": 651,
  "reforgedAmount": -434
},
{
  "stat": 5,
  "amount": 2001
},
{
  "stat": 36,
  "amount": 1544
},
{
  "stat": 7,
  "amount": 3362
},
{
  "stat": 49,
  "amount": 434,
  "reforged": true
}
],
"armor": 2244
},

我当前的代码使其成功

If jResults("items")("head")("stats").Count() > 1 Then

这将使它工作,但它并不理想,因为我必须为每个项目生成新的弹出框

但是,如果我想使用标签文字而不是我尝试了两种方式,那么第一种方法就失败了

If jResults("items")(itemtypelbl.text)("stats").Count() > 1 Then

这导致异常被抛出{“对象引用未设置为对象的实例。”}

我也试过

Dim charitem As String
charitem = itemtypelbl.Text

If jResults("items")(charitem)("stats").Count() > 1 Then

这也会导致同样的例外情况

1 个答案:

答案 0 :(得分:0)

我建议调试并仔细查看itemtypelbl.text的值。确保没有不需要的字符/空格。你可以这样检查,例如:

itemtypelbl.text == "head"

它可能由itemtypelbl.text包含意外值引起。在这种情况下,您从jResults("items")(itemtypelbl.text)得不到任何内容,因为jResults("items")没有具有该名称的属性。并尝试从Nothing获得价值:

jResults("items")(itemtypelbl.text)("stats").Count()

将触发此类空引用异常。