首先,如果已经发布,请道歉。我花了一些时间研究,但没有找到解决方案。
我的目标是从vb.net中的各种JSON响应访问Web请求。我遇到嵌套响应问题;一个例子:
Dim JSON as string = '{"url2": {"href": "https://example.com/test2/"}}'
我有这样的课程:
Public Class test1
Public Class url2
Public href As String
End Class
End Class
反序列化JSON:
Dim objURL1 As test1 = Newtonsoft.Json.JsonConvert.DeserializeObject(Of test1)(JSON)
这似乎工作正常,但我根本不知道如何访问href
值,这是" https://example.com/test2/"在这个例子中。
答案 0 :(得分:0)
您混淆了两个概念:Nesting of .Net types和aggregation of instances of .Net objects。 (后者链接用于c#,但也适用于VB.NET。)
你想要的是包含聚合,如下所示:
Public Class Url2
Public Property href As String
End Class
Public Class Test1
Public Property url2 as Url2
End Class
然后访问href
值do:
Dim objURL1 = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Test1)(JSON)
dim href = objURL1.url2.href
示例fiddle。
有关.Net中嵌套类型的更多背景信息,请参阅Why/when should you use nested classes in .net? Or shouldn't you?。如果您来自Java,请参阅What are the fundamental differences between Java and C# in terms of inner/local/anonymous classes?,其中解释了.net嵌套类型与Java内部类不同。