从中检索JSON数组的索引

时间:2018-01-04 20:28:52

标签: json vb.net serialization

我有一个标准的JSON数组返回给我,我用JsonConvert反序列化,下面是我情况的简化代表:

[
  {
    "name": "John",
    "age": "21",
    },
  {
    "name": "Sally",
    "age": "18",
   },
 {
    "name": "Harry",
    "age": "25",
   }
]

...

Public Class myExample
  Public Property name as String
  Public Property age as Integer
End Class

...

Dim serverResponse as string = reader.ReadToEnd()
Dim jsonResult = JsonConvert.DeserializeObject(Of List(Of myExample))(serverResponse)

我可以轻松地检索给定项目索引的名称或年龄值,例如,

Dim someValue = jsonResult.Item(1).name ' returns Sally
Dim someOther = jsonResult.Item(1).age  ' returns 18

然而我希望返回给定名称的数组的索引(整数):即,我如何搜索Sally并检索​​Item索引整数(在本例中为1),或者在John的情况下,返回0 ?我无法通过jsonResult.IndexOf()或jsonResult.FindIndex()来实现这一点,并且搜索效果不佳。

我有一个广泛的JSON,希望在dataGridViewer列上循环遍历名称,将所有名称的年龄返回到另一列。

感谢您帮助新手!

1 个答案:

答案 0 :(得分:1)

由于以这种方式反序列化导致List(of T),因此可以通过以下示例找到上述示例的索引:

jsonResult.FindIndex((Function(s) s.name.Equals(someNameToCheck)))) 

或在列表中查找项目的任何其他方法。