首页 > 解决方案 > Connectwise API 缺少属性值没有响应

问题描述

这个问题很可能是一个通用的 API 问题,但我使用的 API 是 Connectwise Tickets API。

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

currentTicket = 门票(i)

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

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

因为它甚至不会让我引用 currentTicket.Source.Name 例如,我无法检查 currentTicket.Source.Name = "" 或 Is Nothing。

我错过了什么?有没有办法检查给定 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",
...

当应用程序中的源字段留空时,JSON 看起来像这样:

...
},
  "servicelocation": {
  "id":4,
  "name":"remote",
  "_info":{
    "location_href":"https://API_url"
  }
},
"severity": "Medium",
"impact":"Medium",
...

这种行为可能是正常的,我显然只是缺少如何处理它的知识。我觉得我应该能够测试对象的属性是否不存在,就像我测试它是否为空或“”一样,使用门票(i).Source.Name,但我没有异常,没有错误,没有崩溃,程序只是等待他们对“什么是源名称的价值?”的响应。

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

这是使用 API 做事的正常方式吗?

标签: vb.net

解决方案


推荐阅读