Karate 如何在空手道中检索特定键的所有值
如何从下面的响应中检索零件号。在下面的回复中Karate 如何在空手道中检索特定键的所有值,karate,Karate,如何从下面的响应中检索零件号。在下面的回复中 "10000061","10000062","10000063" 在本质上是动态的。我必须将这些零件号与数据表零件号进行匹配。(在一个响应中,可能有10多个零件号(基于输入),我必须验证它们。) 在下面试用 def partNum= get[0] response..itemCore.partNumber[*] but getting empty array. def partNum= get[0] response..itemCore.par
"10000061","10000062","10000063"
在本质上是动态的。我必须将这些零件号与数据表零件号进行匹配。(在一个响应中,可能有10多个零件号(基于输入),我必须验证它们。)
在下面试用
def partNum= get[0] response..itemCore.partNumber[*] but getting empty array.
def partNum= get[0] response..itemCore.partNumber but getting empty value.
我下面的第二种方法也给了我空值
* def keys = function(obj){ return response.lineItems.keySet() }
* json dynamicValue= keys(response)
* print 'dynamic value '+dynamicValue
* def first = dynamicValue[0]
* print response.lineItems.dynamicValue[0].itemCore.partNumber
* print response.lineItems.first.itemCore.partNumber
要检索特定密钥的数据,可以在jsonPath中使用深度扫描运算符
* def partNumbers = karate.jsonPath(response,"$..partNumber")
下面是另一个解决方案,使用
karate.forEach()
,它还可以在地图上操作,而不仅仅是列表:
* def keys = []
* eval karate.forEach(response.lineItems, function(k){ keys.add(k) })
* print keys
感谢您的快速响应,它帮助我检索密钥集。但在这里,我尝试检索PartNumber的所有值,并与前面提到的数据表中的数据值进行比较。{“零件号”:“1000061”}示例:| pNum | | 1000061 |@sam比较什么?哪个数据表?你说的“比较”是什么意思?举个例子。请将此答案标记为已接受,并打开一个新答案-请尝试在您的回答中更加清楚questions@ptrthomas对不起,把你弄糊涂了。请让我知道如何从上述响应中检索零件号值。@sam您提到的预期零件号导致了错误的解释,我现在已更改了问题并更新了我的答案@Babu Sekaran:您的解决方案对我有效。。谢谢。。!
* def keys = []
* eval karate.forEach(response.lineItems, function(k){ keys.add(k) })
* print keys