在VB.NET中从JSon读取数据

时间:2017-06-05 12:26:35

标签: json vb.net linq

我使用的是Newtonsoft.JSon.Linq,在这一点上,我有点困惑于如何让我的项目以我需要的方式工作。为了跳进主题,我会做什么或者至少想做什么。

我想基于具有这种结构的JSon的JSon节点的第二级将JSon数据提取到结构中:

{
"country" : {
    "germany" : {
        "capital" : "berlin",
        "inhabitants_in_million" : 82,
        "zip-codes" : [
            [
                "berlin",
                10115

            ],
            [
                "hamburg",
                21145
            ],
            [
                "munich",
                80331
            ]
        ]
        },
    "france" : {
        "capital" : "paris",
        "inhabitants_in_million" : 67,
        "zip-codes" : [
            [
                "paris",
                75001
            ],
            [
                "marseille",
                13000
            ]
        ]
    }
}
到目前为止,我的结构是这样的:

    Public countries As List(Of country)

Public Structure country

    Public name As String
    Public capital As String
    Public inhabtitants As Integer

End Structure

我正在使用此代码来读取JSon的数据:

Private Sub json_sub()
    For Each n In json_object
        For Each n_2 As JProperty In n.Value
            Dim c As New country

            c.name = n_2.Name
            c.capital = json_object.SelectToken("country").SelectToken(n_2.Name).SelectToken("capital")
            c.inhabtitants = json_object.SelectToken("country").SelectToken(n_2.Name).SelectToken("inhabitants_in_million")

            countries.Add(c)

        Next
    Next

End Sub

但我在某种程度上与[]序列化的数据斗争,因为它的数组和我迄今为止的所有尝试都没有成功。我浏览了很长时间并阅读了关于deserializiation的内容,但不幸的是,我现在已经陷入困境了。

我的目标是将此数组中的值添加到一个字符串中,该字符串应如下所示:

berlin,10115;hamburg,21145;munich,80331

所以我可以使用

将此字符串添加到我的结构国家/地区
Public zip_codes As String

此时不使用在我的项目中不方便的数组。我希望任何人都可以告诉我如何实现这一目标。

诚恳, 恩

0 个答案:

没有答案