在 REST ASSURED java 中使用 JSONpath 想要提取数组中的数据

Using JSONpath in REST ASSURED java want to extract the data which are in array

该函数包含 API,我可以在其中获取 JSON 格式的值。但我想获得 JSON 中存在的确切 ID=2 如何使用 Java JSON 路径获取该数据。 我必须使用 Maven 依赖项。 该函数包含 API,我可以在其中获取 JSON 格式的值。但我想获得 JSON 中存在的确切 ID=2 如何使用 Java JSON 路径获取该数据。 我必须使用 maven 依赖项。


    <dependency>
       <groupId>com.jayway.jsonpath</groupId>
       <artifactId>json-path</artifactId>
       <version>2.4.0</version>
   </dependency>

 

     void get_extract_response_body() {
          //Specify Base URL
          
          RestAssured.baseURI="https://reqres.in/api";
          
          //Request object
          RequestSpecification httpRequest=RestAssured.given(); 
          //Response Object
          Response response=httpRequest.request(Method.GET,"/unknown");
          
          String responseBody= response.getBody().asString();
          System.out.println(responseBody);
          
          //Print Response in console window
          JsonPath jsonpath= response.jsonPath(); 
          
      System.out.println(jsonpath.get("data[0]."));
      
      
          /*
           * String id=jsonpath.get("$.data[1].id"); System.out.println(id);
           */
          
          
          
      }


  

   {
       "page": 1,
       "per_page": 6,
       "total": 12,
       "total_pages": 2,
       "data": [
           {
               "id": 1,
               "name": "cerulean",
               "year": 2000,
               "color": "#98B2D1",
               "pantone_value": "15-4020"
           },
           {
               "id": 2,
               "name": "fuchsia rose",
               "year": 2001,
               "color": "#C74375",
               "pantone_value": "17-2031"
           },
           {
               "id": 3,
               "name": "true red",
               "year": 2002,
               "color": "#BF1932",
               "pantone_value": "19-1664"
           },
           {
               "id": 4,
               "name": "aqua sky",
               "year": 2003,
               "color": "#7BC4C4",
               "pantone_value": "14-4811"
           },
           {
               "id": 5,
               "name": "tigerlily",
               "year": 2004,
               "color": "#E2583E",
               "pantone_value": "17-1456"
           },
           {
               "id": 6,
               "name": "blue turquoise",
               "year": 2005,
               "color": "#53B0AE",
               "pantone_value": "15-5217"
           }
       ],
       "support": {
           "url": "https://reqres.in/#support-heading",
           "text": "To keep ReqRes free, contributions towards server costs are appreciated!"
       }
   }


此回复帮助我从每个数据中找到键值。

有 2 个 JsonPath:

  • JsonPath Rest-Assured:
JsonPath jsonpath= response.jsonPath();
int id = jsonPath.getInt("data[1].id");
System.out.println(id); //2
  • JsonPath 路口:
int id = com.jayway.jsonpath.JsonPath.read(response.asString(), "$.data[1].id");
System.out.println(id); //2