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

空手道API:如何断言一个json/response节点值,它为不同的数据返回null或数组对象

葛智敏
2023-03-14

我有一个请求,它以两种可能的方式返回响应节点(itemCanBe)值,具体取决于'itemNum'。我如何断言这一点?下面的尝试不起作用

* match res..itemCanBe == null || res..itemCanBe[*] contains ['Colgate']

ItemCan不能返回null

{
"itemDetails": {
    "1234": {
        "itemNum": "1234",
        "itemCanBe": null
    }
  }
}

返回数组

{
"itemDetails": {
    "4567": {
        "itemNum": "4567",
        "itemCanBe": [
            "Colgate",
            "Sensodine"
        ]
    }
}

}

共有2个答案

仲孙夕
2023-03-14

这实际上会起作用:

* def temp = get[0] response..itemCanBe
* match temp == '##[]'

另请参阅:https://stackoverflow.com/a/50350442/143475

公羊光明
2023-03-14

有关详细信息,请参阅此线程:https://github.com/intuit/karate/issues/1202#issuecomment-653632397这应该足以解决您的问题。

 类似资料:
  • 在空手道中有什么方法可以检查如果任何值作为空字符串出现,那么响应中的其他键不应该出现- 例如,如果您看到下面的示例json响应,其中一个为空,并且在同一节点上预览不存在 所以,空手道中任何直接的解决方案都可以检查是否有描述。文本为“,则预览不应出现在该节点上

  • 在下面的json有效负载中,我如何通过空手道断言D节点不在响应中。

  • (免责声明:当人们通过Facebook、Firebase等请求使用异步操作时,会问到数据为空/不正确的问题。我提出这个问题的目的是为每个开始在android中进行异步操作的人提供一个简单的答案) 我试图从我的一个操作中获取数据,当我使用断点或日志调试它时,值就在那里,但当我运行它时,它们总是空的,我如何解决这个问题? 火基 脸谱网 静态编程语言协程 等等。

  • 我有以下两个响应,我需要检查(元素的顺序不同)。尝试了不同的事情,但没有任何结果。任何帮助都将不胜感激!

  • (免责声明:人们通过facebook、firebase等请求询问使用异步操作时数据为空/不正确时,会产生很多问题。我提出这个问题的目的是为每个从android异步操作开始的人提供一个简单的答案。) 我试图从我的一个操作中获取数据,当我使用断点或日志调试它时,值就在那里,但当我运行它时,它们总是空的,我该如何解决这个问题呢? 火力基地 脸书 等。

  • 根据JSON规范,表示null值的正确方法是文字。 预期结果: 实际结果: