修复: Date字段返回前端转为时间戳问题
This commit is contained in:
@@ -1,40 +0,0 @@
|
|||||||
package com.cool.core.config;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonGenerator;
|
|
||||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
|
||||||
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
|
|
||||||
import com.fasterxml.jackson.databind.ser.std.NumberSerializer;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 超出 JS 最大最小值 处理
|
|
||||||
*/
|
|
||||||
@JacksonStdImpl
|
|
||||||
public class BigNumberSerializer extends NumberSerializer {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据 JS Number.MAX_SAFE_INTEGER 与 Number.MIN_SAFE_INTEGER 得来
|
|
||||||
*/
|
|
||||||
private static final long MAX_SAFE_INTEGER = 9007199254740991L;
|
|
||||||
private static final long MIN_SAFE_INTEGER = -9007199254740991L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 提供实例
|
|
||||||
*/
|
|
||||||
public static final BigNumberSerializer INSTANCE = new BigNumberSerializer(Number.class);
|
|
||||||
|
|
||||||
public BigNumberSerializer(Class<? extends Number> rawType) {
|
|
||||||
super(rawType);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException {
|
|
||||||
// 超出范围 序列化位字符串
|
|
||||||
if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) {
|
|
||||||
super.serialize(value, gen, provider);
|
|
||||||
} else {
|
|
||||||
gen.writeString(value.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +1,19 @@
|
|||||||
package com.cool.core.config;
|
package com.cool.core.config;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
|
||||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.NumberSerializer;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
||||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
|
||||||
import java.math.BigInteger;
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class JacksonConfig {
|
public class JacksonConfig {
|
||||||
|
|
||||||
@@ -22,7 +27,41 @@ public class JacksonConfig {
|
|||||||
simpleModule.addSerializer(Long.TYPE, BigNumberSerializer.INSTANCE);
|
simpleModule.addSerializer(Long.TYPE, BigNumberSerializer.INSTANCE);
|
||||||
simpleModule.addSerializer(BigInteger.class, BigNumberSerializer.INSTANCE);
|
simpleModule.addSerializer(BigInteger.class, BigNumberSerializer.INSTANCE);
|
||||||
objectMapper.registerModule(simpleModule);
|
objectMapper.registerModule(simpleModule);
|
||||||
|
// 配置日期格式为 yyyy-MM-dd HH:mm:ss
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
objectMapper.setDateFormat(dateFormat);
|
||||||
return new MappingJackson2HttpMessageConverter(objectMapper);
|
return new MappingJackson2HttpMessageConverter(objectMapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超出 JS 最大最小值 处理
|
||||||
|
*/
|
||||||
|
@JacksonStdImpl
|
||||||
|
public static class BigNumberSerializer extends NumberSerializer {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据 JS Number.MAX_SAFE_INTEGER 与 Number.MIN_SAFE_INTEGER 得来
|
||||||
|
*/
|
||||||
|
private static final long MAX_SAFE_INTEGER = 9007199254740991L;
|
||||||
|
private static final long MIN_SAFE_INTEGER = -9007199254740991L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提供实例
|
||||||
|
*/
|
||||||
|
public static final BigNumberSerializer INSTANCE = new BigNumberSerializer(Number.class);
|
||||||
|
|
||||||
|
public BigNumberSerializer(Class<? extends Number> rawType) {
|
||||||
|
super(rawType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException {
|
||||||
|
// 超出范围 序列化位字符串
|
||||||
|
if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) {
|
||||||
|
super.serialize(value, gen, provider);
|
||||||
|
} else {
|
||||||
|
gen.writeString(value.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user