数字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); } }
知止而后有定;定而后能静;静而后能安;安而后能虑;虑而后能得。