若依 ruoyi-vue Jackson配置 Long 转为 String 防止 js 丢失精度 东八区时区 自定义时间格式

package com.huida.framework.config;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
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 java.text.SimpleDateFormat;
import java.util.TimeZone;

/**
 * Jackson配置
 *
 * @author ruoyi
 */
@Configuration
public class JacksonConfig {
    @Bean
    public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
        final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        //null,它也会被包含在序列化结果中。
        builder.serializationInclusion(JsonInclude.Include.ALWAYS);

        final ObjectMapper objectMapper = builder.build();
        SimpleModule simpleModule = new SimpleModule();
        
        // Long 转为 String 防止 js 丢失精度
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        objectMapper.registerModule(simpleModule);
        // 忽略 transient 关键词属性
        objectMapper.configure(MapperFeature.PROPAGATE_TRANSIENT_MARKER, true);

        // 设置序列化传输时间为东八区时区
        objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
                // FIXME:序列化默认日期格式 请使用@JsonFormat(pattern = "yyyy-MM-dd") 自定义时间格式
        objectMapper.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
         // FIXME:序列化默认日期格式 请使用@JsonFormat(pattern = "yyyy-MM-dd") 自定义时间格式
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        return new MappingJackson2HttpMessageConverter(objectMapper);
    }
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-15 15:46:14       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-15 15:46:14       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-15 15:46:14       82 阅读
  4. Python语言-面向对象

    2024-05-15 15:46:14       91 阅读

热门阅读

  1. SQL中的LAG函数与LEAD函数用法

    2024-05-15 15:46:14       32 阅读
  2. Spring中事务的失效场景

    2024-05-15 15:46:14       38 阅读
  3. Windows下打包项目成Linux版本

    2024-05-15 15:46:14       34 阅读
  4. Scala编程基础7:模式匹配、隐式转换详解

    2024-05-15 15:46:14       34 阅读
  5. 前端下载文件流

    2024-05-15 15:46:14       31 阅读
  6. 5.14 力扣每日一题 贪心

    2024-05-15 15:46:14       42 阅读
  7. dom驱动和数据驱动的理解

    2024-05-15 15:46:14       38 阅读
  8. Vue学习v-on

    2024-05-15 15:46:14       35 阅读
  9. 连接和断开与服务器的连接

    2024-05-15 15:46:14       28 阅读
  10. uniapp实现拖拽排序+滑动删除功能

    2024-05-15 15:46:14       31 阅读
  11. SQL Server BULK INSERT

    2024-05-15 15:46:14       38 阅读