zoukankan      html  css  js  c++  java
  • fastjson转换数字时,格式化小数点

    使用fastjson类库转换java对象时,对于BigDecimal类型,有时需要特殊格式,比如:

    1.0,转为json时候,要求显式为1,因此需要在转换时做处理。步骤如下:

    1、新建类,实现ValueFilter接口

    import java.math.BigDecimal;
    import com.alibaba.fastjson.serializer.ValueFilter;
     
    /**
     * 处理BigDecimal小数部分为0的情况
     * 123.5 -> 123.5
     * 12.0 -> 12
     * 12.00 -> 12
     */
    public class BigDecimalValueFilter implements ValueFilter {
        /**
         * @param object 对象
         * @param name 对象的字段的名称
         * @param value 对象的字段的值
         */
        @Override
        public Object process(Object object, String name, Object value) {
            if(null != value && value instanceof BigDecimal) {
                String str = value.toString();
                if(str.endsWith(".0")) {
                    str = str.substring(0, str.length()-2);
                } else if(str.endsWith(".00")) {
                    str = str.substring(0, str.length()-3);
                } else {
                    str = value.toString();
                }
                return str;
            }
            return value;
        }
    }

    2、对象转为json时,第二个参数填入该类即可。

    BigDecimalValueFilter filter = new BigDecimalValueFilter();
    String contentJson = JSON.toJSONString(request, filter);
  • 相关阅读:
    ios开发之-- tableview/collectionview获取当前点击的cell
    使用 urllib 进行身份验证
    关于 Handler 与 opener
    使用 urllib 构造请求对象
    使用 urllib 发送请求
    urllib 基础模块
    urllib 简介
    网络爬虫的分析算法
    网络爬虫的更新策略
    网络爬虫的爬行策略
  • 原文地址:https://www.cnblogs.com/edda/p/14588149.html
Copyright © 2011-2022 走看看