簡體   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