繁体   English   中英

VB.Net从JSON获取价值

[英]VB.Net Getting Value from JSON

请有人帮我从这个JSON获取每个分支中的branch_id吗?

{
    "branches": {
        "1": {
            "member_id": "-16",
            "branch_id": "1"
        },
        "2": {
            "member_id": "-16",
            "branch_id": "1"
        }
    }
}

我正在使用JavaScriptSerialiser反序列化JSON,但未正确执行,因为我认为JSON并非像我以前使用的数组:

 Dim jss As New JavaScriptSerializer()
        Dim data As OfficeCheckJsonResponse = jss.Deserialize(Of OfficeCheckJsonResponse)(responseFromServer)

使用Newtonsoft,对象类型为字典(整数,SampleClass),就像在同一主题中一样,请检查链接。

    Dim JsonSettings = New Newtonsoft.Json.JsonSerializerSettings
    JsonSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
    Dim OutObject = Newtonsoft.Json.JsonConvert.DeserializeObject(Of branch)("###JSONSTRING###")
    Public Class branch
        Property branches As Dictionary(Of Integer, SampleClass)
        Class SampleClass
            Property member_id As String
            Property branch_id As String
        End Class
    End Class

类在Value属性中,键是Unique String,在这种情况下是1,2,3,4 ...

         For Each DictionaryElement As KeyValuePair(Of String, BranchesData) In branches
            Debug.Print(DictionaryElement.Key) 'Is Key 1,2,3 etc..
            'DictionaryElement.Value is BranchesData
            Debug.Print(DictionaryElement.Value.branch_id)
            Debug.Print(DictionaryElement.Value.member_id)
        Next

声明一个Branch类,并将属性Branch branches As Dictionary(Of String, Branch)OfficeCheckJsonResponse类。

使用JavaScriptSerialiser,将JSON反序列化为OfficeCheckJsonResponse的实例。

您可以通过遍历data.branches来获取branch_id值。 您也可以使用LINQ。

Sub Main
    Dim responseFromServer = "{
    ""branches"":  {
        ""1"": {
            ""member_id"": ""-16"",
            ""branch_id"": ""1""
        },
        ""2"": {
            ""member_id"": ""-16"",
            ""branch_id"": ""1""
        }
    }
}"

    Dim jss As New JavaScriptSerializer()
    Dim data As OfficeCheckJsonResponse =
        jss.Deserialize(Of OfficeCheckJsonResponse)(responseFromServer)

    For Each branch As KeyValuePair(Of String, Branch) In data.branches
        Console.WriteLine(Int32.Parse(branch.Key))
        Console.WriteLine(branch.Value)
    Next
End Sub

Public Class OfficeCheckJsonResponse
    Public Property branches As Dictionary(Of String, Branch)
End Class

Public Class Branch
    Property member_id As String
    Property branch_id As String
End Class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM