从 json 响应中隐藏页面的默认参数 | spring开机| Netflix尤里卡
hide default parameters of page from json response | spring boot | Netflix Eurekka
我有 JSON 来自 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
}
但我需要如下回复,
{
"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();
}
}
我有 JSON 来自 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
}
但我需要如下回复,
{
"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();
}
}