来自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
},
我当前的代码
stat0lbl.Text = If(jResults("items")(itemtypelbl.Text) Is Nothing, "", jResults("items")(itemtypelbl.Text)("stats")(0)("stat").ToString()) + Environment.NewLine + If(jResults("items")(itemtypelbl.Text) Is Nothing, "", jResults("items")(itemtypelbl.Text)("stats")(1)("stat").ToString()) + Environment.NewLine + If(jResults("items")(itemtypelbl.Text) Is Nothing, "", jResults("items")(itemtypelbl.Text)("stats")(2)("stat").ToString()) + Environment.NewLine + If(jResults("items")(itemtypelbl.Text) Is Nothing, "", jResults("items")(itemtypelbl.Text)("stats")(3)("stat").ToString()) + Environment.NewLine + If(jResults("items")(itemtypelbl.Text) Is Nothing, "", jResults("items")(itemtypelbl.Text)("stats")(4)("stat").ToString()) + Environment.NewLine + If(jResults("items")(itemtypelbl.Text)("stats")(5) Is Nothing, "", jResults("items")(itemtypelbl.Text)("stats")(5)("stat").ToString())
此代码完美无缺,直到数组中的stat 5为止,我不知道如何处理数组中的Is Nothing
答案 0 :(得分:0)
我认为推动单行执行此逻辑并不会带来任何优势,但代码可读性更低(冗余检查jResults("items")(itemtypelbl.Text) Is Nothing
)。我建议在标准If
块(如果可能)中执行此操作:
If jResults("items")(itemtypelbl.Text) Is Not Nothing Then
Dim newStat = _
jResults("items")(itemtypelbl.Text)("stats")(0)("stat").ToString() & Environment.NewLine & _
jResults("items")(itemtypelbl.Text)("stats")(1)("stat").ToString() & Environment.NewLine & _
jResults("items")(itemtypelbl.Text)("stats")(2)("stat").ToString() & Environment.NewLine & _
jResults("items")(itemtypelbl.Text)("stats")(3)("stat").ToString() & Environment.NewLine & _
jResults("items")(itemtypelbl.Text)("stats")(4)("stat").ToString() & Environment.NewLine
If jResults("items")(itemtypelbl.Text)("stats").Count() > 5 Then
newStat &= jResults("items")(itemtypelbl.Text)("stats")(5)("stat").ToString()
End If
stat0lbl.Text = newStat
End If
我认为主要的混淆是如何检查索引5处的stat
是否存在。如上所示,一种可能的方法是使用.Count()
检查集合(stat
)中的数据量(stats
)。如果.Count()
返回的值超过5,则意味着索引为5的数据。