当前位置: 首页 > news >正文

@JsonSerialize注解

1.简介

@JsonSerialize注解可以自定义改变返回前端的内容,比如:将Student实体类的age字段的值在返回前端之前,由20改为21.

要用到jackson-databind依赖包,在Spring Boot项目中,默认已经集成了Jackson,因此你不需要手动引入Jackson库。

 2.上例子

将Student实体类的age字段的值在结果返回前端之前,由20改为21.

步骤一:

新建一个FormatterSerializer类,继承JsonSerializer<T>类,比如:如果想改变的是数据类型,比如Integer,可以把 T写成Integer,也可以写成Number类型.

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;

public class FormatterSerializer extends JsonSerializer<Number> {
    @Override
    public void serialize(Number value, JsonGenerator gen, SerializerProvider serializerProvider) throws IOException {
        if(value == null){
            gen.writeNull();
        }else {
            int i = value.intValue() +1;
            gen.writeNumber(i);
        }
    }
}

步骤二:新建一个Student实体类,在age字段加上@JsonSerialize注解,using = FormatterSerializer类

import com.example.controller.FormatterSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

@Data
public class Student {
    private String name;
    @JsonSerialize(using = FormatterSerializer.class)
    private Integer age;
}

步骤三: 写个接口测试:

@RestController
@RequestMapping("app/")
@Slf4j
public class AAController {
    @GetMapping("/aa")
    public Student queryById() {
        Student student = new Student();
        student.setName("张三");
        student.setAge(20);
        return student;
    }
}

现在看结果:

结果看到,age从20变成了21, @JsonSerialize注解成功生效了.

相关文章:

  • 机器臂运动控制算法工程师面试
  • LVGL常用功能备忘
  • STM32基础教程——定时器
  • 天梯赛 L2-013 红色警报
  • 2025海外华文新媒体高级人才研修班在广西南宁举办
  • Java实体类(Javabean)-编程规范
  • 自动学习和优化过程,实现更加精准的预测和决策的智慧交通开源了
  • 神聖的綫性代數速成例題13. 非齊次方程組解的性質、非齊次方程組解的討論
  • python:music21 构建 LSTM+GAN 模型生成爵士风格音乐
  • [笔记] TinyWebServer编译及demo运行过程
  • 什么是PHP伪协议
  • 详细解释计算机系统中的大小端
  • Unity摄像机基本操作详解:移动、旋转与缩放
  • qt实现一个简单http服务器和客户端
  • 前端(vue)学习笔记(CLASS 5):自定义指令插槽路由
  • 熔断降级(Sentinel解决)
  • 在OpenGL ES中将值传入shader的方法总结
  • 一条不太简单的TEX学习之路
  • 论文阅读:Attention is all you need
  • 从PGC到AIGC:海螺AI多模态内容生成系统的技术革命
  • 五部门:开展新就业形态劳动者劳动权益保障水平提升专项行动
  • 吴志朴当选福建德化县人民政府县长
  • 俄伏尔加格勒机场正式更名为斯大林格勒机场
  • 国际锐评:菲律宾“狐假虎威”把戏害的是谁?
  • 力箭二号火箭成功进行满载起竖试验,计划今年首飞发射轻舟飞船
  • 港交所与香港证监会就“中概股回流意向”已与部分相关企业进行接触