首页 > 解决方案 > 从 VB.Net 中的 Json 数组获取值

问题描述

在此先感谢我有一个如下所示的 json 数组 [ { "Name": "abc", "Age": "15", "Gender": "M" }, { "Name": "def", "Age": "16", "Gender": "M" }, { "Name": "ghi", "Age": "17", "Gender": "M" } ]

我需要提取数据,请指教

标签: jsonvb.net

解决方案


这样的事情应该可以帮助您入门。
首先我们Person像这样创建对象

Public Class Person
Public Property Name As String
Public Property Age As String
Public Property Gender As String

Public Overrides Function ToString() As String
    Return "Name: " + Name + " Age: " + Age + " Gender: " + Gender
End Function
End Class

这将是我们存储persons 的属性。
我们还将覆盖ToString()以便在显示对象信息时获得所需的所有属性。

现在我们将Deserialize有效载荷放入一个Person Array使用Newtonsoft Json的库中,这是一个非常流行的库,可以帮助您完成 Json Data 所需的任何工作,您需要通过 Nuget 安装该包

Dim payload = "[{""Name"": ""abc"",""Age"": ""15"",""Gender"": ""M""},{""Name"": ""def"",""Age"": ""16"",""Gender"": ""M""},{""Name"": ""ghi"",""Age"": ""17"", ""Gender"": ""M""}]"
Dim personCollection() = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Person())(payload)

完成后,我们可以遍历其中的每个项目personCollection并将结果显示到控制台。

For Each person As Person In personCollection
    Console.WriteLine(person.ToString())
Next

希望这会有所帮助。我在这个例子中使用了一个控制台应用程序。

完整示例

Module Module1

Sub Main()
    Dim payload = "[{""Name"": ""abc"",""Age"": ""15"",""Gender"": ""M""},{""Name"": ""def"",""Age"": ""16"",""Gender"": ""M""},{""Name"": ""ghi"",""Age"": ""17"", ""Gender"": ""M""}]"
    Dim personCollection() = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Person())(payload)

    For Each person As Person In personCollection
        Console.WriteLine(person.ToString())
    Next

    Console.ReadKey()

End Sub

End Module

Public Class Person
Public Property Name As String
Public Property Age As String
Public Property Gender As String

Public Overrides Function ToString() As String
    Return "Name: " + Name + " Age: " + Age + " Gender: " + Gender
End Function
End Class

推荐阅读