当前位置: 首页 > 知识库问答 >
问题:

请放心。有可能从请求json中提取价值吗?

法烨华
2023-03-14

我得到的回应是这样的:

Response response = expect().statusCode(200).given().body(requestBody).contentType("application/json")
.when().post("/admin");
String responseBody = response.getBody().asString();

我有一个json回复:

{"user_id":39}

我可以用放心的方法提取字符串吗?

共有3个答案

林国安
2023-03-14

有几种方法。我个人使用以下选项:

提取单个值:

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

吕骞尧
2023-03-14

我找到了答案:)

使用 JsonPath 或 XmlPath(如果您有 XML)从响应正文中获取数据。

在我的情况下:

JsonPath jsonPath = new JsonPath(responseBody);
int user_id = jsonPath.getInt("user_id");
赵飞语
2023-03-14

如果您只对提取“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对象获取到包含值的简单列表?谢谢