从json响应中隐藏页面的默认参数|spring-boot|Netflix Eurekka



我有来自spring引导的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,
"unsorted": false,
"empty": false
},
"numberOfElements": 0,
"first": true,
"empty": true
}

但我需要以下回复,

{
"content": [],
"last": true,
"totalPages": 0,
"totalElements": 0,
"size": 10,
"number": 0,
"sort": null,
"first": true,
"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();
}
}

最新更新