josn在序列化后避免将MyBatisPlus的分页参数Long类型转换成String

在Java开发过程中,由于前端接收Long类型的id时会出现精度丢失的情况,所以会在后端配置,将所有long类型的参数都变成字符串进行回传,但是刚好MyBatisPlus的current,pages,size等参数就是Long类型,此时若不想要将这些参数转换成字符串,那可以将这些字段排除在外,最简单的方法如下:

将MyBatisPlus中的Page复制出来

josn在序列化后避免将MyBatisPlus的分页参数Long类型转换成String_第1张图片
复制出来后需要先创建一个自定义规则的序列化类
josn在序列化后避免将MyBatisPlus的分页参数Long类型转换成String_第2张图片

public class LongJsonSerializer extends JsonSerializer<Long> {

    @Override
    public void serialize(Long value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException {
        if (value != null) {
            jsonGenerator.writeNumber(value);
        }
    }

}

然后去给Page类中的long类型指定使用的序列化方式 @JsonSerialize(using = LongJsonSerializer.class)

josn在序列化后避免将MyBatisPlus的分页参数Long类型转换成String_第3张图片
最后将所有导入的Page包变成自己定义的Page包即可
整体解决方案可参见超链接文章

你可能感兴趣的:(Spring,Boot,MyBatis,java,开发语言)