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

如何从响应对象中获取特定的json键值

澹台承
2023-03-14

我得到了响应从REST API到响应对象后,通过RestAsared API调用

响应主体是json,我想从中获取特定的键值吗?

以下是代码

Response res = given()
             .relaxedHTTPSValidation()
             .with()
             .contentType(ConfigReader.get("application.json")) 
             .then()
             .get(url);

String rbody = res.body().asString();

如何在rbody字符串中获取特定的键值?

共有3个答案

薛兴言
2023-03-14

JSON的格式是这样的{ some propty:" some value " },所以您不是以字符串的形式获取它,而是想要访问那个特定的属性。即:b.body.someProperty

注意:我强烈建议你把你的回应命名为更像res回应的东西。你不会喜欢用b作为你的回应。

如何访问 JSON 对象名称/值?

JSON的格式也可以类似于{somePropertyThatIsNumerical:1},或者可以包含数组

支淮晨
2023-03-14

Restassured的JasonPath类是我在项目中使用的类。首先,您需要使用以下命令导入JsonPath类:

import com.jayway.restassured.path.json.JsonPath;

然后您需要传递JSON字符串并使用它来创建JsonPath对象。从JsonPath对象中,您可以使用键获取相应的值。以下代码将适用于您。

Response res = given()
         .relaxedHTTPSValidation()
         .with()
         .contentType(ConfigReader.get("application.json")) 
         .then()
         .get(url);

String rbody = res.asString();
JsonPath jp = new JsonPath( rbody );
String value = jp.getString( "your.key" );
何安宜
2023-03-14

Response类具有方法path()使用该方法,用户可以指定json路径以获取特定值。

例如:-

Response res = given()
             .relaxedHTTPSValidation()
             .with()
             .contentType(ConfigReader.get("application.json")) 
             .then()
             .get(url);
String value = res.path("root.childKey").toString();

< code>root.childKey是json元素的路径

 类似资料:
  • } 我想从这个json对象中获取值。 我在下面试过了,但没有成功。

  • 问题内容: 我想从Http get响应中获取一个对象: 这是我当前对Http get的代码: 这是convertSteamToString函数: 现在,我只是得到一个字符串对象。我如何找回JSON对象。 问题答案: 您获得的字符串只是JSON Object.toString()。这意味着您将获取JSON对象,但使用String格式。 如果应该获取JSON对象,则可以输入:

  • 我想从Http get响应中获取一个对象: 这是我当前的Http get代码: 这是转换的SteamToString函数: 现在我只是得到一个字符串对象。如何取回JSON对象。

  • 如何从json响应中获取键“存在”的值?我之前试过 但它不起作用。如果我print_r回应,这就是正在打印的内容: 我当前的代码:

  • 我有一个这样的回应json, 我想显示userId=3的详细信息,但没有为我提供获取详细信息的endpoint。所以我想从这个endpoint得到细节。 应用程序内: 我已经显示了仪表板的数据(使用recyclerview/list)

  • 问题内容: 这是我的json: 这是模型: 查询: 问题是强制转换为我期望属性后,但它是字符串。它不应该转换为Date对象吗?我在这里想念什么? 问题答案: @Gunter是绝对正确的。我唯一要添加的实际上是如何反序列化json对象,使其日期属性保持为日期而不是字符串(从引用的帖子中看到这种方法并不容易)。 这是我的尝试: 您可以在此处看到这种方法的示例:JSON.parse在dateRevive