微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 json 响应中隐藏页面的默认参数 |弹簧靴| Netflix 尤里卡

如何解决从 json 响应中隐藏页面的默认参数 |弹簧靴| Netflix 尤里卡

我有来自 Spring Boot 的 JSON 响应,

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

但我需要如下回复

{
  "content": [],"sort": null,"numberOfElements": 0
}

简而言之,如何修改返回响应的认参数?我可以为此设置任何额外的配置吗?提前致谢

解决方法

我猜您正在使用 spring 数据页面,因此只需创建 JsonSerializer 的实现 例如。

@JsonComponent
public class PageImplJacksonSerializer extends JsonSerializer<PageImpl> {

   @Override
   public void serialize(PageImpl page,JsonGenerator jsonGenerator,SerializerProvider serializers) throws IOException {
    
    jsonGenerator.writeStartObject();
    jsonGenerator.writeObjectField("content",page.getContent());
    jsonGenerator.writeBooleanField("first",page.isFirst());
    jsonGenerator.writeBooleanField("last",page.isLast());
    jsonGenerator.writeNumberField("page_number",page.getNumber());
    jsonGenerator.writeNumberField("elements_per_page",page.getNumberOfElements());
    jsonGenerator.writeNumberField("total_pages",page.getTotalPages());
    jsonGenerator.writeNumberField("total_elements",page.getTotalElements());
    jsonGenerator.writeEndObject();
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。