专注JavaWeb开发 首页制式『默认式 OR 时间轴 网站地图|RSS订阅|设为首页|加入收藏
当前位置:首页 >Java >Java工具类 > 正文

Java实体类数字类型转Json精度损失 @JsonSerialize

作者: 紫寒1120 发布时间: 2017-02-27 浏览次数:

Java实体类中为long类型,转为Json输入可能会有精度损失或者不输出的问题,解决问题如下

实体类添加

        /**
	 * 优惠价格
	 */
	@JsonSerialize(using = NumberToStringSerializer.class)
	private Long preferentialprice;
	/**
	 * 实收
	 */
	@JsonSerialize(using = NumberToStringSerializer.class)
	private Long actualprice;
	/**
	 * 应收款
	 */
	@JsonSerialize(using = NumberToStringSerializer.class)
	private Long payprice;
	/**
	 * 欠款
	 */
	@JsonSerialize(using = NumberToStringSerializer.class)
	private Long arrearsprice;

添加类 

NumberToStringSerializer.java
package com.common.web.jackson;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;

public class NumberToStringSerializer extends JsonSerializer<Object> {

    @Override
    public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
        gen.writeString(String.valueOf(value));
    }
}

格式化输出

public class CustomDoubleSerialize extends JsonSerializer<Double> {  
  
    private DecimalFormat df = new DecimalFormat("##.00");  
  
    @Override  
    public void serialize(Double value, JsonGenerator jgen,  
            SerializerProvider provider) throws IOException,  
            JsonProcessingException {  
  
        jgen.writeString(df.format(value));  
    }  
}


QQ群: 武汉地区(142173356)验证消息JavaWeb1024

网友共有【】评论,点击查看



x 微信关注我们 随时获取最新网站资讯