? ? ? ?今天碰到一個(gè)很奇怪的問(wèn)題:后端返回的數(shù)據(jù)中ID字段數(shù)據(jù)對(duì)應(yīng)不上,數(shù)據(jù)庫(kù)和前端得到的數(shù)據(jù)不一致到忽,debug了下释液,原因是js解析json數(shù)據(jù)時(shí)熏矿,Long類型是用Number接收,Number最多是16位孝凌,所以導(dǎo)致后面幾位的數(shù)據(jù)丟失方咆,查了下幾種解決方案,最終使用如下解決方案:Long類型使用json解析時(shí)用String類型解析蟀架,只需要自定義配置下Json的配置信息即可瓣赂,配置信息如下:
@Configuration
public class JacksonConfig {
@Bean
@Primary
? @ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapperjacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
{
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
? ? // 全局配置序列化返回 JSON 處理
? ? SimpleModule simpleModule =new SimpleModule();
? ? //JSON Long ==> String
? ? simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
? ? objectMapper.registerModule(simpleModule);
? ? return objectMapper;
? }
}
補(bǔ)充:
注意使用上面方法可能會(huì)對(duì)前端邏輯有影響,我這樣操作后片拍,有前端頁(yè)面會(huì)提示需要字符串類型轉(zhuǎn)數(shù)字類型煌集,所以還是需要謹(jǐn)慎一些。