Программно исключить поля в содержимом страницы

Использование Spring MVC с JsonView из библиотеки json-view, чтобы программно исключить некоторые поля из Page содержание, как так

Page<CollectionTransaction> page = (Page<CollectionTransaction>)getEntityService().findAll(predicate, pageable);
page = jsonResult.use(JsonView.with(page)
                .onClass(PaymentPeriod.class, match().exclude("saleTransactions", "memberPayment"))
                .onClass(PaymentMode.class, match().exclude("accountingTransactionCollection")))
                .returnValue();

JSON результат возвращается следующим

{
    "total": 26867,
    "pageable": {
        "sort": null,
        "page": 0,
        "size": 20
    },
    "content": [
        {
          ...
        }
    ]
}

Что возвращается, если JsonView не используется и просто возвращает страницу следующим образом (что является желаемым результатом)

{
    "content": [
        {
          ...  
        }
    ],
    "totalPages": 48,
    "last": false,
    "totalElements": 955,
    "size": 20,
    "number": 0,
    "sort": null,
    "numberOfElements": 20,
    "first": true
}

Это происходит только при использовании Page,

Почему json-view изменить формат возвращаемого json, или как достичь желаемого результата.

0 ответов

Другие вопросы по тегам