moliu

Results 17 comments of moliu

JSONFactory.getDefaultObjectWriterProvider().register(BigInteger.class, ObjectWriters.ofToString(Object::toString));也不行 JSONFactory.register(class, serializer)没这个方法啊

JSON.register(BigInteger.class, ObjectWriters.ofToString(Object::toString)); 这个试过,2.0.60还不行,应该要等你的提交发到下个版本才行

对了,看下这个是不是也是和上面一个问题,BigInteger没有按配置序列化 @Data public static class test1 { int a = 1; Integer b = 2; long c = 1; Long d = 1123123213213123213L; //@JSONField(serializeUsing = BigIntegerToStringSerializer.class) BigInteger e = new...

问题是没有内置的能力可以支持BigInteger转String啊。。。有的话我也不会这么写。。。

非常感谢,另外上面说的有点多,其实就两个需求,一个是希望能增加JSONWriter.Feature.WriteBigIntegerAsString,或者JSONWriter.Feature.WriteLongAsString同样能支持BigInteger,这个是局部的配置,另一个是provider.register(BigInteger.class, ObjectWriters.ofToString(Object::toString))不生效,我看你的提交已经实现了

那就把 WriteBigIntegerAsString 、 WriteBigDecimalAsString 、WriteNonStringValueAsString都加上,叫开发者自选,另外就是我看这个fix被关掉了,https://github.com/alibaba/fastjson2/pull/3876 ObjectWriterProvider provider = context.getProvider(); provider.register(BigInteger.class, ObjectWriters.ofToString(Object::toString));这个是不是还是不行呢

第一种不行,因为我是序列化整个对象,而不是只序列化BigInteger,这样会把所有的属性都转为String,我需要的是一个只转换BigInteger,所以我需要的是有一个WriteBigIntegerAsString 这样的Feature,在当我转向使用第二种方式的时候发现是不生效的,这个fix修复的就是这个问题,但是我看到它已经被关掉了,希望能合并到下个版本 https://github.com/alibaba/fastjson2/pull/3876,您可以看一下我最初提的问题,里面展示了最终的输出结果