vb.net - 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 做事的正常方式吗?
解决方案
推荐阅读
- python-3.x - Thingspeak:使用 API、Python 更新图表选项
- spring-kafka - 处理消息后关闭 kafka 消费者
- glib - Is there a way to register types from gobject introspection?
- javascript - TypeError:无法读取未定义的属性“道具”-即使我将道具中的一些数据传递给该组件
- angular - Angular Material Accordions 未在第一次渲染时关闭
- fpga - 使用 yosys 提取 FSM
- bitbucket - Bitbucket:每个分支是否可以有一个 bitbucket-pipelines.yml 文件?
- node.js - Gitlab-ci.yml、SSH 和 NVM:通过 ssh 连接到服务器并运行 nvm 使用
- python - 可以在 Keras 模型中执行 one-hot 编码吗?
- mongodb - 从命令行选择数据库时,MongoDB 身份验证错误