I have JSON response from spring boot as,
{
"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
}
But I need this response as below,
{
"content": [],
"last": true,
"totalPages": 0,
"totalElements": 0,
"size": 10,
"number": 0,
"sort": null,
"first": true,
"numberOfElements": 0
}
in brief, How can I modify the default parameters of returned response? is there any extra configuration I can set for that? thanks in advance
I guess you're using spring data page so just create an implementation of JsonSerializer
eg.
@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();
}
}