Post接口响应生成ID提取失败,请求技术协助(附代码)
问题:无法从POST接口响应中提取生成的ID
我无法从Post接口的响应中提取生成的ID,代码的最后两行存在问题(可参考截图)。

@Test public void create() { RestAssured.baseURI= "https://dummy.restapiexample.com"; String response=given().log().all().header("Content-Type","application/json") .body(payload.employee()).when().post("/api/v1/create") .then().log().all().assertThat().statusCode(200) .header("Server", "Apache").extract().response().asPrettyString(); System.out.println(response); JsonPath js = new JsonPath(response); String id = js.get("id"); System.out.println("id"); }
问题分析与解决方案
你的代码存在两处问题:
- JSON路径错误:从截图的响应结构能看到,ID是嵌套在
data对象下的,直接用js.get("id")找不到对应字段,需要使用data.id作为路径 - 打印语句错误:最后一行
System.out.println("id");是打印字符串"id",而非你提取的变量id,所以无法输出实际的ID值
修正后的代码片段:
JsonPath js = new JsonPath(response); String id = js.get("data.id"); System.out.println(id);
替换原代码的最后两行即可正常提取并打印生成的ID。
内容的提问来源于stack exchange,提问作者chinmay k
相关产品推荐
相关产品推荐

