# BigDecimal-Format
**Repository Path**: Mashrmaro/bigdecimal-format
## Basic Information
- **Project Name**: BigDecimal-Format
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-12-29
- **Last Updated**: 2022-02-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# BigDecimal-Format
#### 介绍
主要用于控制BigDecimal类型的数据在序列化为json格式数据时的一些格式。
如使用`@BigDecimal`注解在成员属性上设置序列化json时需保留的小数位数,取整策略,是否转为字符串类型参数。
其次, 针对一些类型在序列化为json格式数据时存在null值的情况进行了处理,
- 数组、list、set类型为 null 时, 将序列化为[]
- 布尔类型为 null 时, 将序列化为 false
- 数值类型为 null 时, 将序列化为 0
#### 使用说明
在实体类中`BigDecimal类型的成员属性`上添加`@BigDecimal`注解即可。
注解参数说明:
- scale 保留小数位数,默认保留2位
- model 取整策略,默认BigDecimal.ROUND_HALF_UP
- isToString 是否将值转成字符串类型 默认false
#### 举个栗子
```java
@Data
public class TestModel {
private String name;
@BigDecimalFormat(scale = 6, model = BigDecimal.ROUND_FLOOR,isToString = true)
private BigDecimal score;
}
```
```java
@RestController
public class TestController {
/**
*
* @return
*/
@RequestMapping(value = "/demo1")
public Object demo1() {
return new TestModel();
}
@RequestMapping(value = "/demo2")
public Object demo2() {
TestModel model = new TestModel();
model.setScore(new BigDecimal("1.000"));
return model;
}
}
```
##### 请求/demo1
配置前:
```json
{"name": null,"score": null}
```
配置后:
```json
{"name": "","score": 0}
```
##### 请求/demo2
配置前:
```json
{"name": null,"score": 1.000}
```
配置后:
```json
{"name": "","score": "1.000000"}
```