首页 > 解决方案 > 如何使用 Spring 5 从 JSON 响应中仅检索直接子对象

问题描述

我已经使用 SpringBoot2 和 Spring 5 构建了一个小型微服务,它公开了一个 REST 服务(HTTP GET 方法),并且在内部使用了另一个 REST GET 服务(第三方 API)。当我调用我的服务(GET)时使用 Postman,然后我得到一个 JSON 响应,但问题是我得到一个完整的整个对象作为响应,如下所示:-

[
    {
        "id": "1",
        "name": "Open Catalogue",
        "subcategories": [
            {
                "id": "106",
                **"name": "Components",**
                "subcategories": [
                    {
                        "id": "816",
                        "name": "Power Supplies",
                        "subcategories": [
                            {
                                "id": "814",
                                "name": "Rechargeable Batteries",
                                "subcategories": [],
                                "sample": {
                                    "empty": true,
                                    "lazy": false,
                                    "async": false
                                }
                            },
                            {
                                "id": "829",
                                "name": "Battery Chargers",
                                "subcategories": [],
                                "samples": {
                                    "empty": true,
                                    "lazy": false,
                                    "async": false

                                }
                            },

我在 post man 中使用的服务 URL 是这样的:- http://localhost:8080/test-search?searchKey=ball 所以我的要求是每当用户通过子类别名称使用此服务时,只有该子类别的详细信息连同其直接子项详细信息一起返回,而不是子项的子项。这里的 URL 中的 searchKey 只不过是搜索子类别的自由文本。例如,当我说:- http://localhost:8080/test-search?searchKey=Components

那么只有下面的细节应该像这样返回:-

                "id": "106",
                "name": "Components",
                "subcategories": [
                    {
                        "id": "816",
                        "name": "Power Supplies",

响应不应包含电源的子类别,即“子类别”:[“id”:“814”,“名称”:“可充电电池”,

在准备 JSON 响应或首先获取整个对象然后开始过滤时,是否有任何有效的方法来进行过滤?

请指教,谢谢

标签: jsonspringrestspring-bootmicroservices

解决方案


推荐阅读