微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据条件从REST Json响应中检索特定数据

如何解决根据条件从REST Json响应中检索特定数据

我查看了所有相关帖子,但找不到所需的内容。 使用https://codebeautify.org/jsonpath-testerhttps://jsonpath.com/验证了查询语法。在下面的代码中,如果我仅打印id,我将得到正确的响应。我正在根据特定的用户ID和ID寻找标题

以o / p获取“无效的JSON表达式”。任何人都可以在这里提供帮助!

public void restPost2(){
    RestAssured.baseURI = "https://jsonplaceholder.typicode.com/posts";
    RequestSpecification req = RestAssured.given().log().all();
    String res1 = req.given().when().get().then().extract().asstring();
    JsonPath js = new JsonPath(res1);
    System.out.println("list of Ids : " + js.get("id"));
    System.out.println("specific title : " + js.get("(?(@.userId == '3') && (@.id == '23')).title"));
}

解决方法

进行以下更改将解决您的问题。

  • 使用JsonPath.read将json字符串设置为查询

  • jsonPath查询的语法需要更正。

suggest you to refer jsonPath documentation again.

请找到一个有效的示例

json = <data fetched for the api>

        Object x = JsonPath.read(json,"$..id");

        Object y = JsonPath.read(json,"$[?(@.userId == 3 && @.id == 23)]");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。