我得到了响应从REST API到响应对象后,通过RestAsared API调用。
响应主体是json,我想从中获取特定的键值吗?
以下是代码
Response res = given()
.relaxedHTTPSValidation()
.with()
.contentType(ConfigReader.get("application.json"))
.then()
.get(url);
String rbody = res.body().asString();
如何在rbody
字符串中获取特定的键值?
JSON的格式是这样的{ some propty:" some value " },所以您不是以字符串的形式获取它,而是想要访问那个特定的属性。即:b.body.someProperty
注意:我强烈建议你把你的回应命名为更像res
或回应
的东西。你不会喜欢用b
作为你的回应。
如何访问 JSON 对象名称/值?
JSON的格式也可以类似于{somePropertyThatIsNumerical:1},或者可以包含数组。
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" );
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