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

如何用java在JSON中进行搜索/查找

屠嘉
2023-03-14
    null
    {
    "store": {
        "book": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    },
     "expensive": 10
    }

我正在寻找一个解决方案,如Groovy GPath语法

  • store.book-此数组的大小。
  • store.book[*].category-如何计算数组中的键值。
  • store.bicycle-如果发现它必须返回true值

共有1个答案

任元青
2023-03-14

您还可以使用REST Assured提供的JsonPath项目。这个JsonPath项目使用Groovy GPath表达式。在Maven中,您可以像这样依赖它:

<dependency>
    <groupId>com.jayway.restassured</groupId>
    <artifactId>json-path</artifactId>
    <version>2.4.0</version>
</dependency>

例子:

获取所有图书类别的列表:

List<String> categories = JsonPath.from(json).get("store.book.category");
String category = JsonPath.from(json).get("store.book[0].category");
String category = JsonPath.from(json).get("store.book[-1].category");
List<Map> books = JsonPath.from(json).get("store.book.findAll { book -> book.price >= 5 && book.price <= 15 }");
 类似资料:
  • 问题内容: 我有一个下面的JSON字符串,我想在JSON字符串中查找/搜索条件。 1)。查找存在的键数。2)。获取给定键的值(如果有数组) 我正在寻找类似Groovy GPath语法的解决方案 store.book-此数组的大小。 store.book [*]。category-如何对数组中存在的键进行计时。 store.bicycle-如果发现它必须返回真实值 问题答案: 您还可以使用REST

  • 问题内容: 我正在使用Hibernate 4和Lucene 3.6。我对构面计数有要求。根据我的要求,我有一个实体“产品”。实体“产品”具有某些属性,例如ID,颜色,品牌。 现在,我的要求是,我想以多维方式获取该实体的商品数,并获取红色(彩色)耐克(品牌)服装的数量。 所以举个例子。我的数据库中保存了以下产品实体。 id品牌颜色 1锐步红 2锐步黑 3锐步绿 4利红 5利黑 6利黑 现在,我希望我

  • 问题内容: 我有一个对象列表,列表很大。对象是 现在,我必须在列表中搜索对象的特定值。假设 我必须返回那些对象(我的搜索并不总是基于value3) 清单是 有效的方法是什么? 谢谢。 问题答案: 您可以尝试使用Apache Commons Collections。 有一个CollectionUtils类,允许您通过自定义谓词选择或过滤项目。 您的代码将如下所示: 更新: 在 java8中 ,使用

  • 我有一个对象列表,列表很大。对象是 现在我必须在列表中搜索一个对象的特定值。假设我必须返回这些对象(我的搜索不总是基于value3) 该列表为

  • 问题内容: 我正在尝试使用 Java 和 Elasticsearch 进行Elasticsearch搜索。elasticsearch为Java提供了API,这很酷。 问题是,我希望在Java中创建一个方法,该方法接收一个字符串(应该是一个包含用于搜索的信息的JSON),该字符串反映此对Elasticsearch的HTTP调用 但是我希望这种方法尽可能通用。 所以问题是: 是否可以使用Java AP

  • 我想在Java中用标准API进行动态搜索。 在我写的代码中,我们需要用JSON编写url栏中的每个实体。我不想写“普拉卡”。 网址: 这里我们需要写出每个实体,即使我们只搜索一个实体。类型实体,它应该为空。 我的代码如下。假设有多个实体,我想做的是使用它想要搜索的单个实体进行搜索。正如你在照片中看到的,我不想写一个我不需要的实体。你能帮我做什么吗? 我在存储库中的代码 我的服务代码 我在控制器中的