当前位置: 首页 > 知识库问答 >
问题:

请放心,匹配来自根json数组的值

秦才
2023-03-14

我是新来的放心

我有一个这样的json响应

{
  "queryPath": "/api/",
  "nId": "f084f5ad24fcfaa9e9faea0",
  "statusCode": 707
  "statusMessage": "Success",
  "results": {
    "data": [
      {
        "id": "10248522500798",
        "capabilities": [
          "men",
          "women"
        ],
        "name": "errt2"
      },
      {
        "id": "418143778",
        "capabilities": [
          "dog",
          "cat"
        ],
        "name": "Livin"
      }
    ]
  }
}

String type="men"使用放心,我需要检查类型值men与能力数组值

[
          "men",
          "women"
        ]

"capabilities": [
          "dog",
          "cat"
        ]

    If the type value `men` not contains in any of the capabilities i need to raise error..how it is possible?

我使用了下面的代码。但它不起作用,任何其他方式??

body("results.data.capabilities", hasItems(type));

正在获取错误

Expected: (a collection containing "men")
  Actual: [[ men,women
        ], [dog, cat]]

共有1个答案

夏侯彬郁
2023-03-14

问题是您的jsonPath

results.data.capabilities

指向这两个“功能”数组,因为它们嵌套在 JSON 的同一级别。如果您可以可靠地期望第一个“功能”数组包含“men”,那么您可以在 jsonPath 中指定第一个“功能”,如下所示:

results.data.capabilities[0]
 类似资料:
  • 我正在尝试使用jsonPath从JSON数组中提取值。 JSON响应示例: 目前的测试如下: 然而,我一直在处理我的错误代码。我只想知道它的价值。

  • 问题内容: 我正在使用以下代码来解析yaml并应将输出作为对象,并且该函数应更改数据结构并根据以下结构提供输出 这是我尝试过的方法,但是我不确定如何从yaml中获取的值 替换 函数运行器中 的硬代码值 与来自 这就是我尝试过的所有想法,该怎么做? 问题答案: 将runners对象的名称分配给名称的struct 字段,并使用与名称匹配的函数命令将命令列表附加到type字段: 操场上的工作代码

  • 我是新来的,请放心。我尝试了下面的代码来获得响应 这是json响应 如何计算id或列表的大小。帮助我。

  • 在我的rest控制器类中,我有以下方法 这特别说明我正在将application/json对象返回给请求用户。但是,当我执行rest-assured测试时 我收到以下错误 我很困惑,不知道为什么我的标题在rest测试中没有说明任何内容类型。我将请求放入我的web浏览器并选择Headers选项卡,元数据如下所示 响应头 请求头 关于为什么我的ContentType没有被请求的rest-assured

  • 我的JSON响应如下所示: 我正在尝试提取成功消息和数据。但是,我的控制台输出保持为null。 提取响应后,我的代码将使用Rest Assured接收空响应: 我对成功和数据的响应均为空

  • 我需要使用REST保证Jsonpath根据匹配标准获取计数值 我尝试了以下方法,但不起作用: JSON: