Java Long类型处理精度丢失问题 传递给前端精度丢失
推荐统一处理 不需要单独处理了
package com.wochanye.ssc.portal.config; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import java.math.BigInteger; @Configuration @AutoConfigureAfter(JacksonAutoConfiguration.class) public class JacksonConfiguration { public JacksonConfiguration(ObjectMapper objectMapper) { SimpleModule module = new SimpleModule(); module.addSerializer(new ToStringSerializer(Long.TYPE)); module.addSerializer(new ToStringSerializer(Long.class)); module.addSerializer(new ToStringSerializer(BigInteger.class)); objectMapper.registerModule(module); } }
方法一、使用JsonSerialize注解的时候把Long自动转为String
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @JsonSerialize(using = ToStringSerializer.class) private Long id;
方法二、使用JsonSerialize注解的时候把Long自动转为String
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @Configuration @AutoConfigureAfter(JacksonAutoConfiguration.class) public class JacksonConfiguration { public JacksonConfiguration(ObjectMapper objectMapper) { SimpleModule module = new SimpleModule(); module.addSerializer(new ToStringSerializer(Long.TYPE)); module.addSerializer(new ToStringSerializer(Long.class)); module.addSerializer(new ToStringSerializer(BigInteger.class)); objectMapper.registerModule(module); } }