空手道:在使用 json 过滤器路径时,路径 $['data'] 中缺少 属性

Karate: I get missing property in path $['data'] while using json filter path

我已经阅读了空手道文档和有关堆栈溢出的问题。 resp.response.data下有2个json数组。我正在尝试从 resp.response.data[1] 中检索并断言 json 中的“bId”: 81,但在检索 id 值 81 时出现此缺失 属性 错误。你能帮忙吗如果我遗漏了什么?

     * def resp =
    """
    {
          "response": {
            "data": [
              {
                "aDetails": {
                  "aId": 15,
                  "aName": "Test",
                  "dtype": 2
                },
                "values": [
                  {
                    "bId": 45,
                    "value": "red"
                  }
                ],
                "mandatory": false,
                "ballId": "1231231414"
              },
              {
                "aDetails": {
                  "aId": 25,
                  "aName": "Description",
                  "dtype": 2
                },
                "values": [
                  {
                    "bId": 46,
                    "value": "automation"
                  },
                  {
                    "bId": 44,
                    "value": "NESTED ARRAY"
                  },
                  {
                    "bId": 57,
                    "value": "sfERjuD"
                  },
                  {
                    "bId": 78,
                    "value": "zgSyPdg"
                  },
                  {
                    "bId": 79,
                    "value": "NESTED ARRAY"
                  },
                  {
                    "bId": 80,
                    "value": "NESTED ARRAY"
                  },
                  {
                    "bId": 81,
                    "value": "NESTED ARRAY"
                  }
                ],
                "mandatory": true,
                "ballId": "1231231414"
              }
            ],
            "corId": "wasdf-242-efkn"
          }
        }
    """
    * def expectedbID=81
    * def RespValueId = karate.jsonPath(resp, "$.data[1][?(@.bId == '" + expectedbID + "')]")
    * match RespValueId[0] == expectedbID

也许你把事情搞得太复杂了?

* match resp.response.data[1].values contains { bId: 81, value: 'NESTED ARRAY' }