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