【问题标题】:Keep trailing zeros in bigdecimal in json在 json 中以 bigdecimal 保持尾随零
【发布时间】:2018-01-18 14:11:46
【问题描述】:

我创建了 onse 序列化程序类,它应该将 Bigdecimal 限制为小数点后的两位数。但它也删除了零。例如:如果值为 95.50,则将其截断为零并在 json 中输出为 95.5。

public class PriceJsonSerializer extends JsonSerializer {

    @Override
    public void serialize(BigDecimal value, JsonGenerator jgen, 
    SerializerProvider provider) throws IOException, JsonProcessingException 
    {
      jgen.writeNumber(value.setScale(2, 
         BigDecimal.ROUND_HALF_UP).toString());
         }
    }

【问题讨论】:

  • 对此有什么答案吗?

标签: jsonserializer


【解决方案1】:

要强制序列化程序保留舍入而不将值写入字符串,请尝试“writeRawValue”。

public class PriceJsonSerializer extends JsonSerializer {

    @Override
    public void serialize(BigDecimal value, JsonGenerator jgen, 
    SerializerProvider provider) throws IOException, JsonProcessingException 
    {
      jgen.writeRawValue(value.setScale(2, 
         BigDecimal.ROUND_HALF_UP).toString());
         }
    }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多