代码之家  ›  专栏  ›  技术社区  ›  pitchblack408

是否可以更改Spring Boot 2可分页响应的JSON名称/结构?

  •  0
  • pitchblack408  · 技术社区  · 6 年前

    我使用的是spring boot 2,我喜欢它的开箱即用特性,但现在我被要求将分页结果重新格式化为不同的结构。我想继续使用控制器中的可分页和页面功能。我在找合适的方法来做这件事。

    @GetMapping(name = "customers", produces = MediaType.APPLICATION_JSON_VALUE)
        Page<Customer> showCustomers(Pageable pageable) {
            Page<Customer> page = customerRepo.findCustomers(pageable);
            return page;
        }
    

    回购协议

    public interface CustomerRepository extends JpaRepository<Customer, Long>  {
    
    }
    

    {
        "content": [
    
        ],
        "pageable": {
            "sort": {
                "sorted": false,
                "unsorted": true
            },
            "offset": 0,
            "pageSize": 20,
            "pageNumber": 0,
            "unpaged": false,
            "paged": true
        },
        "last": false,
        "totalPages": 62835,
        "totalElements": 1256684,
        "size": 20,
        "number": 0,
        "numberOfElements": 20,
        "sort": {
            "sorted": false,
            "unsorted": true
        },
        "first": true
    }
    

    这是我想要的格式

    {
        "@id": "/users?page=2&page_size=4",
        "@type": "Collection",
        "@links": {
            "first": {
                "href": "/users?page=1&page_size=4"
            },
            "next": {
                "href": "/users?page=3&page_size=4"
            },
            "previous": {
                "href": "/users?page=1&page_size=4"
            },
            "last": {
                "href": "/users?page=5&page_size=4"
            }
        },
        "items": [
    
            Content...
        ],
        "total_items": 20
    }
    
    0 回复  |  直到 6 年前