RT
后端定义
{
@ApiModelProperty(name = "转账金额,单位(分)")
private Long transAmount;
@ApiModelProperty(name = "退款金额,单位(分)")
private Long refundAmount;
}
因为需要做金额的统计,所以数据库设计成了 bigint 类型,以分为单位,查询出来用 Long 接收
有没有相关 JSON 注解,可以把以分为单位的金额数字转换成以元为单位的字符串,返回给前端。
如:888(分) -> 8.88 (元)
1
virusdefender 2020-06-03 16:51:24 +08:00
前端处理小数可能也会遇到精确度的问题,不如还是用分为单位
|
2
voidxx OP @virusdefender #1 后端已转成 String 了,前端一样用 String 接收就好了
|
3
TtTtTtT 2020-06-03 16:58:10 +08:00
推荐加一个新的只读字段来序列化,这样不会影响模型的反序列化。
如果觉得麻烦的话,可以加一个自定义的序列化器。 https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/annotation/JsonSerialize.html |
5
guyeu 2020-06-03 17:03:47 +08:00
你应该自定义自己的金额类,然后给这个金额类添加一个自定义的序列化器,常见的 json 库都支持自定义序列化器。
|
6
k9990009 2020-06-03 18:57:09 +08:00 via Android
有的,之前写过处理小数保留的位数,你找下这个,单独写个类自己处理输出
|
7
axbx 2020-06-04 10:10:11 +08:00
自定义注解,返回的时候修改一下不就行了
|
8
ruyu 2020-06-04 10:15:51 +08:00
用 xml
<transAmount type="currency">10</transAmount> <refundAmount type="currency">20</transAmount> 然后通过 type 判断就好啦 |
9
Aresxue 2020-06-04 10:18:07 +08:00
你这种情况前后之间交互就应该用分,这样只需要使用整数,然后让前端自己转就好了
|
10
Cinleoi 2020-06-04 14:06:00 +08:00
加一个 DTO 不就行了吗
|