1. 程式人生 > 其它 >數字ID過長 精度丟失 (已解決:後端方案)

數字ID過長 精度丟失 (已解決:後端方案)

使用Fastjson和Springboot的Converter對全域性Long型別統一序列化為字串型別

直接上程式碼:

序列化類:

public class Serialize2String implements ObjectSerializer {

    public static final Serialize2String instance = new Serialize2String();

    @Override
    public void write(JSONSerializer jsonSerializer, Object o, Object o1, Type type, int
i) { if (o == null) { jsonSerializer.out.writeNull(); return; } jsonSerializer.out.writeString(o.toString()); } }

全域性序列化配置:

@Configuration
public class LocalConfig implements WebMvcConfigurer {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter 
= new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); SerializeConfig serializeConfig = SerializeConfig.getGlobalInstance(); serializeConfig.put(Long.class, Serialize2String.instance); serializeConfig.put(Long.TYPE, Serialize2String.instance); converter.setFastJsonConfig(fastJsonConfig); converters.add(converter); } }
知止而後有定;定而後能靜;靜而後能安;安而後能慮;慮而後能得。