json的时间格式问题和aop,高聚合,list转逗号分隔字符串

27 篇文章 0 订阅

json的时间格式可以用dateformat注解和jsonformat注解,但是数字的格式化是没有的,aop切变量

序列化方案

网上有一个处理方案是采用序列化
https://blog.csdn.net/u012075238/article/details/84249973


public class DoubleSerialize extends JsonSerializer<Double> {
 
    private DecimalFormat df = new DecimalFormat("0.00");
 
    @Override
    public void serialize(Double value, JsonGenerator gen, SerializerProvider serializers)
            throws IOException, JsonProcessingException {
        if(value != null) {
            df.setMaximumFractionDigits(2);//显示几位修改几
            df.setGroupingSize(0);
            df.setRoundingMode(RoundingMode.FLOOR);
            //根据实际情况选择使用
            // gen.writeString(df.format(value));  // 返回出去是字符串
            gen.writeNumber(df.format(value));  // 返回出去是数字形式 2018年12月27日17:17:21 更新
 
        }
    }
@Data
public class ValuationAmountVo {
    @JsonSerialize(using = DoubleSerialize.class)
    private double valuation;
    @JsonSerialize(using = DoubleSerialize.class)
    private double amount;
 
}

aop切面方案

切变量
实际上不可行,aop的前提是这个类是bean,对应new的对象,无法实现注入。

有一个办法是在service中放一个方法,然后去切这个方法,变化入参,但实际上这个使用的频率不高,就不采用。

对于数据的处理一定要聚合到类中

service中经常有各种眼花缭乱的内容赋值,或者是进行了数据的处理,当一个方法中非常多的数据处理,将会导致方法非常的长。
比如将数据赋值到新对象,将数据处理成另一个集合,处理数据精确位数,这个时候就可以放到类中处理。
比如下面

    /**
     *  数据类型的转换放在ResourceInfoDO
     * @param in
     * @return
     * */
    void save(ResourceInfoDO in);

入参和出参的时候时间格式

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

list转逗号分隔字符串

StringUtils.join(idList)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值