[英]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.