version : 1.2.67复现代码如下:
JSON.toJSONString(new BigDecimal("1"), SerializerFeature.WriteClassName)
输出:
1.
期望输出:
1zmg4dgp1#
换成最新版本依然如此,希望可以尽快解决
mmvthczy2#
com.alibaba.fastjson.serializer.BigDecimalCodec
if (out.isEnabled(SerializerFeature.WriteClassName) && fieldType != BigDecimal.class && val.scale() == 0) { out.write('.'); }
这里这么做的目的是什么?目前这种方式生成的json存入mysql时存在错误,number后面有个.
uyhoqukh3#
确实存在这个问题,同问
5sxhfpxr4#
我这边已经使用jackson来实现与这个相同的场景了,如果你业务上着急使用,可以使用以下代码代替fastjson的SerializerFeature.WriteClassName功能
ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, DefaultTyping.EVERYTHING, JsonTypeInfo.As.WRAPPER_OBJECT);
olqngx595#
@dingqianwen 我使用JSON.toJSONString(new BigDecimal("1")) 正常序列化了。
6fe3ivhb6#
我的需求是需要加上SerializerFeature.WriteClassName来写入类名称,但是加上SerializerFeature.WriteClassName就会引起Bug
6条答案
按热度按时间1zmg4dgp1#
换成最新版本依然如此,希望可以尽快解决
mmvthczy2#
com.alibaba.fastjson.serializer.BigDecimalCodec
这里这么做的目的是什么?目前这种方式生成的json存入mysql时存在错误,number后面有个.
uyhoqukh3#
确实存在这个问题,同问
5sxhfpxr4#
我这边已经使用jackson来实现与这个相同的场景了,如果你业务上着急使用,可以使用以下代码代替fastjson的SerializerFeature.WriteClassName功能
olqngx595#
@dingqianwen 我使用JSON.toJSONString(new BigDecimal("1")) 正常序列化了。
6fe3ivhb6#
我的需求是需要加上SerializerFeature.WriteClassName来写入类名称,但是加上SerializerFeature.WriteClassName就会引起Bug