我知道similar question已发布,但答案对我不起作用。
我正在使用RestAssured。如何将Response
转换为JSON对象,然后提取JSON数组中的字段(在我的情况下,在errors
数组中)?
Response response =
given().
contentType(ContentType.JSON).
body(jsonAsMap).
when().
post("/customers").
then().
statusCode(400).extract().response();
//get "code" field inside "errors".
在Postman中测试请求时,我得到了这个结果:
{
"uri": "/customers/",
"query": null,
"method": "POST",
"contentType": "application/json",
"status": 400,
"statusMessage": "Bad Request",
"errors": [
{
"field": "firstName",
"code": "firstName.required", //need to extract this field
"message": "firstName is required"
}
]
}
实现这一目标的最简单方法是什么?
答案 0 :(得分:2)
您可以使用JsonPath访问该值并将其转换为Java类型。
这样的事情:
String errorCode = ...then().extract().jsonPath().getString( "errors[0].code" )
答案 1 :(得分:0)
除了上面的答案,这里还有一个替代解决方案:
String errCode = ...then().extract().path("errors[0].code");