先看下这个现象:
@Getter
@Setter
public static class TradeAccount{
private BigDecimal amount;
}
@Test
public void testLog(){
BigDecimal bigDecimal = new BigDecimal("0.00000005");
HashMap map = new HashMap<>();
map.put("amount", bigDecimal);
System.out.println(JSON.toJSONString(map, SerializerFeature.WriteBigDecimalAsPlain));
TradeAccount tradeAccount = new TradeAccount();
tradeAccount.setAmount(bigDecimal);
System.out.println(JSON.toJSONString(tradeAccount, SerializerFeature.WriteBigDecimalAsPlain));
}
结果:
{"amount":0.00000005}
{"amount":5E-8}
说明SerializerFeature.WriteBigDecimalAsPlain配置没有效果 查看源码:
public void writeFieldValue(char seperator, String name, BigDecimal value) {
write(seperator);
writeFieldName(na