自定义注解格式化处理BigDecimal

编程入门 行业动态 更新时间:2024-10-25 12:28:44

<a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义注解格式化处理BigDecimal"/>

自定义注解格式化处理BigDecimal

目录

一、场景描述

二、实现步骤

1、自定义类

2、使用注解

3、测试


一、场景描述

        在开发过程中,如果有实体类的属性中存在BigDecimal的属性,并且需要对其进行校验,例如:限制BigDecimal的小数点位数是两位。但目前没有注解可以完成这个操作,因此我们可以使用下面的工具类和注解进行处理。

二、实现步骤

1、自定义类

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {@Overridepublic void serialize(BigDecimal value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {if (value != null) {// 保留2位小数,四舍五入BigDecimal number = value.setScale(2, RoundingMode.HALF_UP);jsonGenerator.writeNumber(number);} else {jsonGenerator.writeNumber(value);}}
}

2、使用注解


import com.example.yht.utils.BigDecimalSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import lombok.ToString;import java.math.BigDecimal;
@Data
@ToString
public class Student {private String name;private Integer age;private String address;@JsonSerialize(using = BigDecimalSerializer.class)private BigDecimal score;
}

3、测试

@RestController
public class TestController {@PostMapping("/test")public Student test(@RequestBody Student student){return student;}
}

测试结果:

更多推荐

自定义注解格式化处理BigDecimal

本文发布于:2023-11-16 12:13:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1621650.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   注解   BigDecimal

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!