[英]How To Extract Json Data Filed With RestApi?
i make a post to an api with rest assured.我向 api 发帖,并保证 rest。 and than i try to make sure expected data from responsed data, but i got some errors like this -> "java.lang.IllegalArgumentException: The parameter "data" was used but not defined. Define parameters using the JsonPath.params(...) function"然后我尝试从响应的数据中确保预期的数据,但我得到了一些像这样的错误->“java.lang.IllegalArgumentException:参数“data”已使用但未定义。使用 JsonPath.params(.. 。) 功能”
my code:我的代码:
String payload_data = "{" +
"\"Time\":1638057600, " +
"\"exampleType\":example, " +
"\"Id\":[2]}";
RestAssured.defaultParser = Parser.JSON;
given().
contentType(ContentType.JSON).
body(payload_data).
when().
post(api_url).
then().
statusCode(200).
body("data.examples.2.exampleData", equalTo("33"));
}
my json data我的 json 数据
{
"success": true,
"data": {
"examples": {
"2": {
"ex_data": 0,
"exampleData": 33,
"data_ex": 0,
}
}
}
First, I tested path "data.examples.2.exampleData"
with your json, it works fine.首先,我用您的 json 测试了路径"data.examples.2.exampleData"
,它工作正常。 No problem.没问题。
You made some mistakes here.你在这里犯了一些错误。
{
"Time": 1638057600,
"exampleType": example, //it must be number or String with double quote
"Id": [
2
]
}
"data.examples.2.exampleData"
--> int 33 "data.examples.2.exampleData"
-> int 33
equalTo("33")
--> String "33" equalTo("33")
--> 字符串 "33"
Fix: body("data.examples.2.exampleData", equalTo(33));
修复: body("data.examples.2.exampleData", equalTo(33));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.