在项目开发中 有的个别接口 返回给前端的数据中 日期时间格式 的数据 中间会带 T
我已经在 实体类中加上了格式化 时间 的注解
但是有些接口日期时间出现这个T 有些接口没有 T
经过排查 我发现 出现 T 的接口中 我在返回数据的时候 对数据 使用了 fastjson 下的 JSON.toJSONString() 方法 导致的 带有T
R r = JSON.parseObject(JSON.toJSONString(result), R.class);
1
** 使用fastjson 包里的方法 进行json 转换 他会把 时间类型的数据 转换成带有T 的时间数据格式**
处理方案
第一步 写一个 fastJson 配置文件
package com.erp.init.config;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import java.io.IOException;
import java.lang.reflect.Type;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
- User: Json
- Date: 2022/8/24
package com.erp.init.config;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.erp.init.config.filter.FormTokenInterceptor;
import com.erp.init.config.filter.LoginCheckInterceptor;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.time.LocalDateTime;
@Configuration
public class InitConfig implements WebMvcConfigurer {
@Bean public SerializeConfig serializeConfig() { SerializeConfig config = new SerializeConfig(); // 对LocalDateTime类型指定自定义的序列化器 config.put(LocalDateTime.class, objectSerializer()); return config; } @Bean public ObjectSerializer objectSerializer() { return new FastjsonSerializer(); }
}