SpringBoot通过 JsonSerializer实现自定义序列化
介绍
JsonSerializer
是 Jackson 库中的一个类,用于自定义 Java 对象到 JSON 字符串的序列化过程。在使用 Jackson 进行对象序列化时,有时候需要对某些特定类型的字段进行定制化的序列化处理,这时就可以使用 JsonSerializer
来实现自定义的序列化逻辑。
使用
继承JsonSerializer<T>
package com.ybchen.seria; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import org.apache.commons.lang3.StringUtils; import java.io.IOException; /** * @description: 图片序列化 * @author: alex * @create: 2024-05-05 21:10 */ public class PictureJsonSerializer extends JsonSerializer<String> { @Override public void serialize(String str, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException { if (StringUtils.isNotEmpty(str)){ //转换图片加签 gen.writeString(str+"xxx.jpg"); } } }
VO上添加注解:@JsonSerialize(using = PictureJsonSerializer.class)
package com.ybchen.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.ybchen.seria.PictureJsonSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; import java.util.List; /** * @description: * @author: alex * @create: 2024-05-05 21:15 */ @Data public class ImageVO { @ApiModelProperty("主键id") private Integer id; @ApiModelProperty("图片") @JsonSerialize(using = PictureJsonSerializer.class) private String image; @ApiModelProperty("图片列表") private List<String> imageList=new ArrayList<>(); }
处理非空的情况,也进入JsonSerializer
@JsonSerialize(using = xxxx.class,nullsUsing=xxxx.class) private String image;
分类:
JAVA
, Spring Boot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2020-11-04 微服务核心基础知识