解释如何使用 JSONPath 提取值。

rest assuredjsondynamic programming更新于 2025/11/6 16:30:00

我们可以使用 Rest Assured 中的 JsonPath 来提取值。这是在 jsonPath 方法(它是 JsonPath 类的一部分)的帮助下完成的。之后,我们需要使用 get 方法并传递我们想要从 JSON 响应中获取的密钥。

我们首先通过 Postman 在端点上发送 GET 请求并观察 JSON 响应。这里的键是 userId、id、title 和 body。

示例

代码实现

import org.testng.annotations.Test;
import static io.restassured.RestAssured.*;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
public class NewTest {
   @Test
   void getValueJsonPath() {

      //基本 URL
      RestAssured.baseURI = "https://jsonplaceholder.typicode.com";
      RestAssured.basePath = "/posts";

      //获取 JSON 格式的响应
      Response r = given().contentType(ContentType.JSON)

      .log().all().get("/2");
      //JsonPath 类
      JsonPath p = r.jsonPath();

      //获取 JSON 字段
      String u = p.getString("userId");
      String i = p.getString("id");
      String t = p.get("title");
      String b = p.get("body");
      System.out.println("User Id: " + u);
      System.out.println("Id: " + i);
      System.out.println("Title: " + t);
      System.out.println("Body: " + b);
   }
}

输出