0
点赞
收藏
分享

微信扫一扫

ChatGPT发了消息没有反应,并且搜索框变空是怎么回事?怎样解决?

路西法阁下 03-13 08:30 阅读 3

第一种方案

/**
 * BigDecimal序列化器
 */
public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {

	@SneakyThrows
	@Override
	public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) {
		if (null != bigDecimal ) {
			String plainString = bigDecimal.stripTrailingZeros().toPlainString();
			jsonGenerator.writeString(plainString);
		} else {
			jsonGenerator.writeString(BigDecimal.ZERO.toPlainString());
		}
	}
}

 在需要的字段上加上注解
 @JsonSerialize(using = BigDecimalSerializer.class)
 private BigDecimal price;

后端统一处理返回前端Long返回前端损失精度问题

@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(ObjectMapper.class)
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class JacksonConfiguration {

	@Bean
	@ConditionalOnMissingBean
	public Jackson2ObjectMapperBuilderCustomizer customizer() {
		return builder -> {
			builder.locale(Locale.CHINA);
			builder.timeZone(TimeZone.getTimeZone(ZoneId.systemDefault()));
			// 设置日期格式
			builder.simpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
			// 解决long类型损失精度
			builder.serializerByType(Long.class, ToStringSerializer.instance);
			// 解决BigDecimal类型损失精度
			builder.serializerByType(BigDecimal.class, ToStringSerializer.instance);
			// 日期格式自定义类
			builder.modules(new PigJavaTimeModule());
		};
	}

}

第二种方式

/**
 * 全局序列化配置
 */
@Configuration
public class JacksonConfig {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        SimpleModule module = new SimpleModule();
        module.addSerializer(BigDecimal.class, new JsonSerializer<BigDecimal>() {
            @Override
            public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
                if (value != null) {
                    gen.writeString(value.stripTrailingZeros().toPlainString());
                }
            }
        });
        objectMapper.registerModule(module);
        return objectMapper;
    }
}
举报

相关推荐

0 条评论