如何从下面的响应中检索部件号。在下面的响应中
"10000061","10000062","10000063"
本质上是动态的。我必须将这些部件号与数据表部件号进行匹配。(在响应中,可能有10个以上的部件号(基于输入),我必须对其进行验证。)
{ "added": true, "lineItems": { "1111111": { "itemCore": { "partNumber":
"10000061" } }, "222222": { "itemCore": { "partNumber": "10000061" } },
"3333333": { "itemCore": { "partNumber": "10000063" } } } }
尝试过以下
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
答案 0 :(得分:2)
这是另一种解决方案,使用karate.forEach()
也可以在地图上操作,而不仅仅是列表:
* def keys = []
* eval karate.forEach(response.lineItems, function(k){ keys.add(k) })
* print keys
答案 1 :(得分:1)
要检索特定密钥的数据,可以在jsonPath中使用深度扫描运算符,
* def partNumbers = karate.jsonPath(response,"$..partNumber")