当前位置: 首页 > 知识库问答 >
问题:

从newtonsoft json访问VB.net中的嵌套对象

曹兴贤
2023-03-14

首先,如果这已经发布,请道歉。我花了一些时间研究,但还没有找到解决方案。

我的目标是访问vb.net中web请求的各种JSON响应中的数据。我遇到了嵌套响应的问题;例如:

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)

这似乎工作正常,但是我不知道如何访问< code>href值,在本例中是“https://example.com/test2/”。

共有1个答案

沈淇
2023-03-14

您混淆了两个概念:. 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

然后,要访问< code>href值,请执行以下操作:

Dim objURL1 = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Test1)(JSON)
dim href = objURL1.url2.href

样品小提琴。

有关.Net中嵌套类型的更多背景信息,请参阅为什么/何时应该在.Net中使用嵌套类?还是你不应该?。如果您来自Java,请参阅Java和C#在内部/本地/匿名类方面的基本区别是什么?这解释了.net嵌套类型与Java内部类不同。

 类似资料:
  • 我试图解析一个OpenAPI JSON文件,并访问值来构建一个rest模型类。我尝试使用对象映射器解析JSON文件,并将其发送到一个接收

  • 我从foursquare收到了一个json形式的响应。我尝试访问对象的某些部分,但没有成功。如何访问对象的地址?这是我试过的代码。 以下是json响应的一个示例: 完整的回应可以在这里找到

  • }; 因此,我创建了一个对象变量“stock”。包含不同产品的代码、名称、成本和数量。 后来,我创建了一个函数“viewAllStock()”来在我的网站(超文本标记语言)中创建一个表。但是当我运行这个程序时,我在我创建的“产品代码”单元格下得到它 产品代码 [对象对象] [对象对象] [对象对象] [对象对象] [对象对象] 那么,如何使用Javascript在网站(超文本标记语言)中获取标题“

  • 问题内容: 我有基于json的数据结构,其中包含嵌套对象。为了访问特定的数据元素,我一直将对对象属性的引用链接在一起。例如: 如果未定义b或bc,则将失败并显示错误。但是,我想获得一个值(如果存在的话),否则只是未定义。无需检查链中每个值是否存在的最佳方法是什么? 我想尽可能地保持这种方法,所以我不必添加大量的辅助方法,例如: 要么 我也想尝试避免使用try / catch构造,因为这不是错误,因

  • 此类的目的是模拟二进制搜索树的功能。在下面的代码中,我试图将它从一个结构和一堆函数改编成一个包装类,称为BST。但是,我不确定的一件事是如何从节点结构中访问“根”。Root当前在BST类中声明。 具体来说,在show函数中。它不像把它和其他函数放在节点中那样简单,因为根需要是唯一的,并且新节点至少被调用一次。Show将不会在当前状态下编译,我不确定从这里开始。

  • 问题内容: 不固定f1.png值时如何访问inval值。即文件名可以是任何东西,它不知道,所以我如何使用Java访问此JSON中各种文件的inval字段值? 问题答案: 请尝试以下代码, 希望它能解决您的问题