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

JsonPath查询确保Rest

后阳炎
2023-03-14

API URL:https://davids-restaurant.herokuapp.com/menu_items.json?category=C

我正在尝试从上面的RESTAPI检索ID为913的name属性

请在下面找到我的代码

String URL = "https://davids-restaurant.herokuapp.com/menu_items.json?category=C";
Response res = RestAssured.get(URL);
JsonPath jsonPathEvaluator = res.jsonPath();
System.out.println(jsonPathEvaluator.get("$..menu_items[?(@id == 913)].description"));

错误消息

java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found '[' @ line 1, column 40.
                            $..menu_items[?(@id == 913)].description


                        ^

我尝试了这个工作,但我不想用索引查询,但我想用ID查询

System.out.println(jsonPathEvaluator.get("menu_items[1].description"));

共有1个答案

缪升
2023-03-14

您可以使用Groovy过滤器来获得结果。看看这个代码。

io.restassured.response Response;
// response= Get the API response
List<String> namesList = from(response.asString()).getList("menu_items.findAll { it.id == 913 }.name");

在这里,我创建了一个列表,但您可以使用“item”查找单个项目。找到'。

 类似资料:
  • 问题内容: 我正在使用Newtonsoft的Json.Net从以下json中选择节点: 以下C#代码段 产量: 现在,这很酷,我想做的是按客户端代码过滤,我认为 可以,但是我显然对语法不够了解。这将返回一个空列表: 并且单个令牌选择器返回null: 我在https://jsonpath.curiousconcept.com/上尝试了几种不同的配置,看来我的查询语法确实坏了。 使用Flow Comm

  • 我正在连接到mysql服务器并进行查询。我一直得到一个ER_BAD_FIELD_ERROR:'field list'中的未知列

  • 问题内容: 我正在用查询查询我的elasticsearch索引。查询本身的结构与此类似 我希望能够确定所有这些查询中哪一个是与结果匹配的查询。是否有内置的elasticsearch方法允许这样做,还是我必须手动进行? 问题答案: 您可以使用命名查询,然后在结果中获得匹配的查询的名称。 然后,在结果中,您将获得一个数组,其中包含与文档匹配的查询的名称。

  • 本文向大家介绍Java操作mongodb的模糊查询和精确查询,包括了Java操作mongodb的模糊查询和精确查询的使用技巧和注意事项,需要的朋友参考一下 本意是想查查mongo数据库的int类型的like怎么查,但是好像没 解决这个问题。 精确查询;模糊查询;分页查询,每页多少:按某个字段排序(或升或降):查询数量:大于,小于,等于;且,或,某个字段不为空,某个字段不存在,查询在某个范围内,删除

  • 我有以下数据模型: 我想执行以下选择: 因为我必须考虑性能,所以我想在一个选择中执行它,比如(伪): 不幸的是,它执行了这样的操作: 更新:SamiAl90建议的解决方案:此查询 产生以下sql:

  • JsonPath 对于 JSON 来说相当于 XPATH 对于 XML。这是一个简单的从文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Java, Python 和 PHP