空手道框架-如何将数组注入有效载荷中的JSON密钥?

时间:2018-10-03 11:38:14

标签: json karate

我正在尝试将数组(值)注入到json键propertyBatch中,并且此键将具有多个数组元素作为值,请参见下面的-payload例如:

{
  "fname": "value1",
  "propertyBatch":
    [ 
      {
      "propId": 11,
      "subPropId": {
                    "id": [
                            "4234"
                          ]
                   }
      },
      {
      "propId": 12,
      "subPropId": {
                    "id": [
                           "4235"
                          ]
                   }
      }
    ]
}     

在一种情况下,我将拥有如上所述的有效负载,然后将json注入到-propertyBatch中。更具体地说,假设在第一次情况下它的propertyBatch的长度为1,意味着它具有一个json值,而在第二次运行中-propertyBatch可能具有2或3个值,并且长度可以基于2或3关于json值注入的数量。如以上payload所示,我有propertyBatch,长度为2,因为它有两个json值。

我想实现这一目标,我认为我的场景是Scenario Outline:Examples,示例将具有用于替换或插入键的json值-propertyBatch

请注意,我尝试了以下链接中介绍的各种示例和各种方法。并且还使用javax.Json库实现了Java代码,但是返回值是String或数组,因此我无法成功实现目标。

Karate

stackoverflow

1 个答案:

答案 0 :(得分:1)

可以使用嵌入式表达式:

* def baz = [1, 2]
* def foo = { bar: 1, baz: '#(baz)' }
* match foo == { bar: 1, baz: [1, 2] }

* def baz = [3]
* def foo = { bar: 1, baz: '#(baz)' }
* match foo == { bar: 1, baz: [3] }