Vb.net Connectwise API缺少属性值,未给出响应

Vb.net Connectwise API缺少属性值,未给出响应,vb.net,Vb.net,这个问题很可能是一个普通的API问题,但我使用的API是Connectwise票证API 我正在用VB编写,我正在获取我的票证列表(I),然后我正在设置以下变量: 当前票证=票证(i) 这样我就可以引用像currentTicket.Source.Name这样的值,并将信息保存到数据库中 只要Connectwise用户在“源”字段中输入了一些内容,一切都正常。我可以引用该属性并将其记录到数据库或我想做的任何事情。如果他们将其留空,即使尝试查看currentTicket.Source.Name,也会

这个问题很可能是一个普通的API问题,但我使用的API是Connectwise票证API

我正在用VB编写,我正在获取我的票证列表(I),然后我正在设置以下变量:

当前票证=票证(i)

这样我就可以引用像currentTicket.Source.Name这样的值,并将信息保存到数据库中

只要Connectwise用户在“源”字段中输入了一些内容,一切都正常。我可以引用该属性并将其记录到数据库或我想做的任何事情。如果他们将其留空,即使尝试查看currentTicket.Source.Name,也会使我的程序停止运行。它不会崩溃或出错,只是不会超过引用空字段的代码行

例如,由于它甚至不允许我引用currentTicket.Source.Name,因此我无法检查currentTicket.Source.Name是否为空

我错过了什么?是否有办法检查并查看给定API响应的属性是否存在

任何帮助都将不胜感激

编辑:

所以我决定获取Ticket对象并获取原始json并将其发送到命令行输出

当一张票证填写了源字段时,JSON的这一部分是这样的:

...
},
  "servicelocation": {
  "id":4,
  "name":"remote",
  "_info":{
    "location_href":"https://API_url"
  }
},
"source":{
  "id":4,
  "name":"Email Connector",
  "_info": {
    "source_href":"https://API_url"
  }
},
"severity": "Medium",
"impact":"Medium",
...
当应用程序中的source字段保留为空时,JSON看起来像这样:

...
},
  "servicelocation": {
  "id":4,
  "name":"remote",
  "_info":{
    "location_href":"https://API_url"
  }
},
"severity": "Medium",
"impact":"Medium",
...
这种行为可能是正常的,很明显我只是不知道如何处理它。我觉得我应该能够使用Tickets(I).Source.Name测试对象的属性是否不存在,就像我使用Tickets(I).Source.Name)测试对象的属性是否为null或“”一样,但我没有遇到异常、错误、崩溃,程序只是坐在那里等待对“源名称的值是什么”的响应

我的意思是,我想我可以解析整个JSON响应,创建我自己的私有对象,分配存在的值,然后设置我自己的属性值,这样我就可以在JSON响应中不存在mySourceName=”“时设置它,但是,当我只关心10个字段时,这似乎是一个很大的json响应,需要做很多工作


这是API的正常工作方式吗

您应该在Visual Studio的输出窗口中看到此崩溃的原因。在这种情况下,
currentTicket
究竟是什么?如果这就是您所期望的,那么什么是
currentTicket.Source
?如果您无法获取
currentTicket.Source.Name
,那么问题显然比这更严重。感谢jmcilhinney的响应,currentTicket是Ticket对象列表中Ticket对象的当前迭代。当前票证为票证(i)。源是票证对象的一个属性,它有一个name属性。此属性和属性在应用程序中可以为空,但如果在应用程序中为空,则在尝试查看currentTicket.Source.Name等于什么时遇到问题。我猜最终我不知道如何检查一个对象的属性是否不存在,而不查看该属性的值。哎呀,没有崩溃。据我所知,应用程序将继续运行,无限期地等待Connectwise对此属性值的响应。