我想检查SelectTokens查询的结果是否为空或为null,当(构造错误的)json中没有'RunnerNo'时,它返回空值;否则效果很好。
Dim readingJson = Newtonsoft.Json.Linq.JObject.Parse(JsonString)
Dim aRunnerInfos = New List(Of Linq.JToken)
aRunnerInfos = readingJson.SelectTokens("$.runners[?(@.RunnerNo == " & H.Item("No").ToString & ")]", True)
我已经尝试过:如果aRunnerInfos Nothing以及其他几种变体都失败了。
编辑: 我已经尝试过.count
If aRunnerInfos.Count() = 0 Then
Stop
End If
返回:“找不到类型为'd__4'的公共成员'Count'。”
答案 0 :(得分:1)
您的代码:
Dim readingJson = Newtonsoft.Json.Linq.JObject.Parse(JsonString)
Dim aRunnerInfos = New List(Of Linq.JToken)
aRunnerInfos = readingJson.SelectTokens("$.runners[?(@.RunnerNo == " & H.Item("No").ToString & ")]", True)
更新的代码:
Dim readingJson = Newtonsoft.Json.Linq.JObject.Parse(JsonString)
Dim aRunnerInfos as IEnumerable(Of Linq.JToken)
aRunnerInfos = readingJson.SelectTokens("$.runners[?(@.RunnerNo == " & H.Item("No").ToString & ")]", True)
If aRunnerInfos.Count = 0 Then
'Do stuff
Else
'Do other stuff
End If
备用:
Dim readingJson = Newtonsoft.Json.Linq.JObject.Parse(JsonString)
Dim aRunnerInfos as Linq.JToken
aRunnerInfos = readingJson.SelectTokens("$.runners[?(@.RunnerNo == " & H.Item("No").ToString & ")]", True)
If aRunnerInfos Is Nothing Then
'Do stuff
Else
'Do other stuff
End If