首页 > 解决方案 > 空手道不支持 JSON 路径

问题描述

我有一个 JSON 路径,比如 $[advertiserId] 并且计算结果为

[
  "001E000000yBFskIAG"
]

使用工具https://jsonpath.com/?.

但是,等效的空手道语法不起作用:

并匹配 response[*].advertiserId == '001E000000yBFskIAG'

它不识别这条路径。

如果我有 JSON:

{
"advertiserId":"someID"
}

然后

并匹配 response[*].advertiserId == 'someID'

应该管用。空手道应该能够支持基本的 JSON 匹配。

标签: karate

解决方案


空手道更严格 - 如果有 JsonPath “通配符”,例如*,或者..结果将始终是一个数组。也许 jsonpath.com 将单个元素数组转换为方便的值 - 但我们永远不会这样做。

以下作品:

* def response = [{ advertiserId: '001E000000yBFskIAG' }]
* match response[*].advertiserId == ['001E000000yBFskIAG']

推荐阅读