我需要从从 Rest Assured 建模请求返回的 JSON 响应数据中获取两个值:
js prettyprint-override"> public void getCustomerStatuses() {
Response response =
given().header("X-AC-User-ID","test-user").
spec(customerApiSpec).
when().
get("/api/v6/status/" + ref + "/").
then().
assertThat().statusCode(200).extract().response();
custStatusId = response.path("$.cust[?(@.name=='STATUS_ID')].id");
custRenewalId = response.path("$.cust[?(@.name=='RENEWAL_ID')].id");
System.out.println(custStatusId);
System.out.println(custRenewalId);
}
这抛出和 java.lang.IllegalArgumentException: Invalid JSON 表达式:Script1.groovy: 1: Unexpected input: '$.cust[?' @ line 1, column 36. $.cust[?(@.name=='STATUS_ID')].id
获取这些的正确、最好的方法是什么?我知道我可以链接提取().响应(). jsonPath();
关闭请求,但不确定如何获取
是的,你可以使用JsonPath
Response response =
given().header("X-AC-User-ID","test-user").
spec(customerApiSpec).
when().
get("/api/v6/status/" + ref + "/").
then().
assertThat().statusCode(200).extract().response();
JsonPath jsonPath = response.jsonPath();
如果收到的 json 正文是这样的;
{
"value1":{
"id": 1,
"abc": {
"v1": "o1",
"v2": "o2"
}
},
"value2":{
"id": 2,
"title": "test2"
}
}
然后使用 get(字符串路径)
方法;
String v1 = jsonPath.get("value1.abc.v1"); // o1
String title = jsonPath.get("value2.title"); // test2
所需进口;
io.restassured.path.json.JsonPath;
我试图使用Rest assured和JsonPath从pzSetRuleSetFilter字段中提取一个值,其中pyRuleSetName等于某个值(在本例中为商标)。我一直得到下面的错误。任何关于如何解决这个问题并提取价值的想法都是很好的 无效的JSON表达式:script1.groovy:1:需要EOF,发现“[”@第1行,第39列。 我的查询system.out.println(respon
我有一个列表作为响应返回。我需要从使用product.name和tariffplan.name的列表中获得一个项目。 我使用Java8。以下是我的方法。我拿到了卡。类元素的列表。然后,我需要从列表中获得具有指定“product.name”和“tariffplan.name”的单个项目。 是否可以用Restastured来做这件事?也许像我的例子一样使用。param方法?但是在我的示例中。param
我有一个来自web服务的JSON响应,看起来像这样: 我需要做的是使用JSONPATH查询从所有实体中提取主题。 如何获得这些结果: 来自第一项的主题-某个SubjectOne 过滤来自所有实体的特定主题值(例如某个主题2) 从所有实体获取对象
学生班级:
该函数包含API,我可以在其中获取JSON格式的值。但我想获取JSON中存在的确切ID=2如何使用JavaJSON路径获取该数据。我必须使用maven依赖项。该函数包含API,我可以在其中获取JSON格式的值。但我想获取JSON中存在的确切ID=2如何使用JavaJSON路径获取该数据。我必须使用maven依赖项。 这个响应帮助我从每个数据中找到键值。
我最近开始测试一个新项目的API,放心吧。我的Java不是很流利,所以我需要知道如何优化代码。 假设我有一个API,它的输出是以下格式的JSON- 数组中大约有400个这样的对象。我想获取所有400条记录的,并存储在一个数组中。我可以这样做,但我认为该方法可以优化。 我目前的代码 : 如何最小化代码行以实现同样的事情?