From 0531dcf1ad4677db37f155e0d4be3f542455d8c2 Mon Sep 17 00:00:00 2001 From: johnniang Date: Tue, 19 Mar 2019 17:03:43 +0800 Subject: [PATCH] Add PageJacksonSerializer for unifying page response --- .../web/support/PageJacksonSerializer.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/cc/ryanc/halo/web/support/PageJacksonSerializer.java diff --git a/src/main/java/cc/ryanc/halo/web/support/PageJacksonSerializer.java b/src/main/java/cc/ryanc/halo/web/support/PageJacksonSerializer.java new file mode 100644 index 000000000..6695137a1 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/web/support/PageJacksonSerializer.java @@ -0,0 +1,32 @@ +package cc.ryanc.halo.web.support; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import org.springframework.boot.jackson.JsonComponent; +import org.springframework.data.domain.Page; + +import java.io.IOException; + +/** + * Custom serializer for Page object. + * + * @author johnniang + * @date 3/19/19 + */ +@JsonComponent +public class PageJacksonSerializer extends JsonSerializer { + + @Override + public void serialize(Page page, JsonGenerator generator, SerializerProvider serializers) throws IOException { + generator.writeStartObject(); + + generator.writeObjectField("content", page.getContent()); + generator.writeNumberField("pages", page.getTotalPages()); + generator.writeNumberField("total", page.getTotalElements()); + generator.writeNumberField("page", page.getNumber()); + generator.writeNumberField("rpp", page.getSize()); + + generator.writeEndObject(); + } +}