从中检索JSON数组的索引

问题描述 投票:2回答:1

我有一个标准的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,并希望循环访问dataGridView列上的名称,将所有名称的年龄返回到另一列。

感谢您帮助新手!

json vb.net serialization
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.