|
@@ -5,20 +5,26 @@ import com.fasterxml.jackson.databind.SerializerProvider;
|
|
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
|
|
import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
- * Long序列化规则
|
|
|
|
- * <p>
|
|
|
|
- * 会将超长long值转换为string
|
|
|
|
|
|
+ * Long 序列化规则
|
|
|
|
+ *
|
|
|
|
+ * 会将超长 long 值转换为 string,解决前端 JavaScript 最大安全整数是 2^53-1 的问题
|
|
|
|
+ *
|
|
|
|
+ * @author 星语
|
|
*/
|
|
*/
|
|
@JacksonStdImpl
|
|
@JacksonStdImpl
|
|
public class NumberSerializer extends com.fasterxml.jackson.databind.ser.std.NumberSerializer {
|
|
public class NumberSerializer extends com.fasterxml.jackson.databind.ser.std.NumberSerializer {
|
|
|
|
+
|
|
private static final long MAX_SAFE_INTEGER = 9007199254740991L;
|
|
private static final long MAX_SAFE_INTEGER = 9007199254740991L;
|
|
private static final long MIN_SAFE_INTEGER = -9007199254740991L;
|
|
private static final long MIN_SAFE_INTEGER = -9007199254740991L;
|
|
|
|
|
|
public static final NumberSerializer INSTANCE = new NumberSerializer(Number.class);
|
|
public static final NumberSerializer INSTANCE = new NumberSerializer(Number.class);
|
|
|
|
+
|
|
public NumberSerializer(Class<? extends Number> rawType) {
|
|
public NumberSerializer(Class<? extends Number> rawType) {
|
|
super(rawType);
|
|
super(rawType);
|
|
}
|
|
}
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
|
public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
|
// 超出范围 序列化位字符串
|
|
// 超出范围 序列化位字符串
|