Karate 空手道:匹配JSON数组响应,其中每个命中的数组顺序不同

Karate 空手道:匹配JSON数组响应,其中每个命中的数组顺序不同,karate,Karate,我有一个场景,其中响应数组的一部分是来自子API的响应。 子API响应如下所示,但没有具体顺序。我需要检查父API中是否存在子API响应(与子API中元素的顺序无关)。我遵循这个思路,但在我的案例中它不起作用 * def response1 = """ { "array1": [ { "element": { "id": "A1", "array11": [

我有一个场景,其中响应数组的一部分是来自子API的响应。 子API响应如下所示,但没有具体顺序。我需要检查父API中是否存在子API响应(与子API中元素的顺序无关)。我遵循这个思路,但在我的案例中它不起作用

* def response1 =

    """
   {
    "array1": [
        {
            "element": {
                "id": "A1",
                "array11": [
                    {
                        "uid": "u123",
                        "gid": [
                            "g1"
                        ]
                    }
                ]
            }
        },
        {
            "element": {
                "id": "A2",
                "array11": [
                    {
                        "uid": "u124",
                        "gid": [
                            "g2"
                        ]
                    }
                ]
            }
        }
    ]
}
"""
* def response2 =

    """
 {
    "array1": [
        {
            "element": {
                "id": "A2",
                "array11": [
                    {
                        "uid": "u124",
                        "gid": [
                            "g2"
                        ]
                    }
                ]
            }
        },
        {
            "element": {
                "id": "A1",
                "array11": [
                    {
                        "uid": "u123",
                        "gid": [
                            "g1"
                        ]
                    }
                ]
            }
        }

    ]
}
    """
这是一行:)

你猜怎么着,你不必总是匹配纯JSON,使用子节就可以了

但也要阅读文档的这一特定部分:


下面的示例:

请添加一个编程语言标记,否则语法突出显示将不起作用。谢谢@Peter Thomas。在我的例子中,我需要检查子api响应的大小,如果数组的大小>1,那么我只需要匹配父api响应中的那些元素。若子API只返回一个数组,那个么将不会在父API中填充该数组。所以我制作了一个JS函数来检查responseStatus和子api响应的大小。如何在JS函数中使用
包含
?@JCK Karate不鼓励您在JS中进行
匹配
包含
,这是故意的。你的考试似乎太复杂了。也许是时候你问一个新问题了,保持它的具体性,请尝试使用更简单的例子,并尊重这里试图帮助你的人的时间我没有过度复杂化,我没有找到空手道的方法来点它,所以我使用JS。有空手道的方法吗?@JCK只是我的看法。无论如何,我不明白你的问题,所以我建议你用一个具体的例子问一个新问题。或者等待其他人提供我错过的任何东西
* match response2.array1 contains response1.array1