首先,如果这已经发布了,请道歉。我花了一些时间研究,但还没有找到解决办法。
我的目标是访问数据从各种JSON响应的web请求在vb.net。我有嵌套响应的麻烦;一个例子:
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/"。
你混淆了两个概念:。net类型的嵌套和。net对象实例的聚合。(后一个链接适用于c#,但也适用于VB.NET)
您想要的是通过包含进行聚合,如下所示:
Public Class Url2
Public Property href As String
End Class
Public Class Test1
Public Property url2 as Url2
End Class
然后访问href
值:
Dim objURL1 = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Test1)(JSON)
dim href = objURL1.url2.href
样本小提琴。
有关。net中嵌套类型的更多背景信息,请参见为什么/何时应该在。net中使用嵌套类?或者你不应该?如果您来自Java,请参见Java和c#在内部/局部/匿名类方面的根本区别是什么?这解释了。net嵌套类型与Java内部类不同。