我得到的回应是这样的:
Response response = expect().statusCode(200).given().body(requestBody).contentType("application/json")
.when().post("/admin");
String responseBody = response.getBody().asString();
我有一个json回复:
{"user_id":39}
我可以用放心的方法提取字符串吗?
有几种方法。我个人使用以下选项:
提取单个值:
String user_Id =
given().
when().
then().
extract().
path("user_id");
当您需要多个响应时,请使用整个响应:
Response response =
given().
when().
then().
extract().
response();
String userId = response.path("user_id");
使用JsonPath提取一个以获得正确的类型:
long userId =
given().
when().
then().
extract().
jsonPath().getLong("user_id");
当您想要与值和类型匹配时,最后一个非常有用,即
assertThat(
when().
then().
extract().
jsonPath().getLong("user_id"), equalTo(USER_ID)
);
放心的文档非常具有描述性和完整性。有很多方法可以实现您所要求的:https://github.com/jayway/rest-assured/wiki/Usage
我找到了答案:)
使用 JsonPath 或 XmlPath(如果您有 XML)从响应正文中获取数据。
在我的情况下:
JsonPath jsonPath = new JsonPath(responseBody);
int user_id = jsonPath.getInt("user_id");
如果您只对提取“user_id”感兴趣,也可以这样做:
String userId =
given().
contentType("application/json").
body(requestBody).
when().
post("/admin").
then().
statusCode(200).
extract().
path("user_id");
最简单的形式是这样的:
String userId = get("/person").path("person.userId");
问题内容: 我以这种方式得到回应: 我在responseBody中有一个json: 是否可以仅使用此值= 39将其提取为字符串? 问题答案: 我找到了答案:) 使用JsonPath或XmlPath(如果您有XML)从响应主体获取数据。 就我而言:
我试图从JSON中提取值,并将其存储在String List中,因为稍后我需要检查我在csv文件中的值是否存在于此List中。 任何人都可以帮我建立一个路径来提取它吗? 现在我在我的控制台上得到了这个。**(它只返回了十个,因为我更改了“limit”参数。 我的代码直到现在: 下面您可以找到JSON结构,我只需要对象“标识符”数组中的所有“accountId”。
我正在尝试使用jsonPath从JSON数组中提取值。 JSON响应示例: 目前的测试如下: 然而,我一直在处理我的错误代码。我只想知道它的价值。
我正在发送一些字符串,例如: via放心 不幸的是,API返回500。我通过邮递员发送相同的请求,它工作得很好。唯一的区别是“assings”部分。邮递员请求后,看起来像: 当“放心”请求后,它是空的: 添加了所有标头,我尝试将其作为从.json文件解析的字符串发送。一切都给出相同的结果。有人知道问题出在哪里?
对于包含JSON主体的post请求,我使用rest assured 我的post请求代码是:- 好心的帮助....
我正在收到以下结构的响应: ] 每当我想提取JSON属性时,例如描述,最终的对象不是我所期望的。它创建具有ArrayString的列表。 如何将值从此JSON对象获取到包含值的简单列表?谢谢