解决fastjson SerializerFeature.WriteBigDecimalAsPlain配置无效的问题

先看下这个现象: 

​
@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
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: serializerfeature.prettyformat是一个Fastjson序列化特性,用于在序列化JSON时输出格式化的字符串,使其易于阅读和调试。当该特性启用时,Fastjson会在输出的JSON字符串中添加缩进和换行符,以便更好地组织和显示JSON数据。 ### 回答2: serializerfeature.prettyformat 是fastjson 序列化库提供的一个特性,用于在将 Java 对象序列化为 JSON 字符串时,使得生成的 JSON 字符串以更加易读的格式展示。 当我们在使用 fastjson 进行对象转换时,默认生成的 JSON 字符串是紧凑的,即没有任何空格、缩进或换行符。这样的格式虽然在机器读取时没有问题,但对于人类来说阅读起来却很困难。 通过启用 serializerfeature.prettyformat 特性,我们可以让生成的 JSON 字符串具有良好的格式,方便我们排版和阅读。它会给生成的 JSON 字符串添加缩进和换行符,使得属性之间有一定的空格隔开,整个字符串看起来更加美观。 例如,将一个 Java 对象序列化为 JSON 字符串时,默认格式生成如下: {"name":"Tom","age":20,"gender":"male"} 而启用 prettyformat 特性后,生成的 JSON 字符串将会格式化如下: { "name": "Tom", "age": 20, "gender": "male" } 可以看到,每个属性都占据一行,属性名和属性值之间有一定的空格,整个 JSON 字符串更加易读。 值得注意的是,prettyformat 特性对于生成的 JSON 字符串长度会较之前增长,因此在网络传输中需要权衡数据大小和可读性之间的平衡。 ### 回答3: SerializerFeature.PrettyFormat是fastjson提供的一个序列化特性,在序列化JSON时可以将JSON格式化输出,使其更具可读性。 使用PrettyFormat将会使生成的JSON字符串具有良好的缩进和换行格式,以便于阅读和调试。这样可以方便开发人员查看JSON的结构和内容,更加清晰地理解JSON数据。 例如,对于一个简单的JSON对象: { "name": "张三", "age": 20, "address": "上海" } 如果不使用PrettyFormat特性,那么序列化后得到的JSON字符串可能是这样的: {"name":"张三","age":20,"address":"上海"} 而如果使用了PrettyFormat特性,那么序列化后得到的JSON字符串将会是这样的: { "name": "张三", "age": 20, "address": "上海" } 可以看到,使用PrettyFormat后,JSON字符串具有更好的可读性,每个键值对都会占据一行,并且有缩进,使得JSON的结构更加清晰明了。 使用PrettyFormat特性需要注意的是,在生产环境中由于生成的JSON字符串比较冗余,会增加数据传输的大小,因此不应该在生产环境中频繁使用。通常在开发和调试阶段使用PrettyFormat特性可以提高开发效率和调试方便性。 综上所述,SerializerFeature.PrettyFormat是fastjson中的一个序列化特性,可以将生成的JSON字符串格式化输出,使其更具可读性和可理解性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值