Commit 650133dda4d1e54223fd85d3cc53df14851084b2
1 parent
cb0daf3c
增加 NumberSerializer 注释
Showing
1 changed file
with
9 additions
and
3 deletions
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/jackson/core/databind/NumberSerializer.java
| @@ -5,20 +5,26 @@ import com.fasterxml.jackson.databind.SerializerProvider; | @@ -5,20 +5,26 @@ import com.fasterxml.jackson.databind.SerializerProvider; | ||
| 5 | import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; | 5 | import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; |
| 6 | 6 | ||
| 7 | import java.io.IOException; | 7 | import java.io.IOException; |
| 8 | + | ||
| 8 | /** | 9 | /** |
| 9 | - * Long序列化规则 | ||
| 10 | - * <p> | ||
| 11 | - * 会将超长long值转换为string | 10 | + * Long 序列化规则 |
| 11 | + * | ||
| 12 | + * 会将超长 long 值转换为 string,解决前端 JavaScript 最大安全整数是 2^53-1 的问题 | ||
| 13 | + * | ||
| 14 | + * @author 星语 | ||
| 12 | */ | 15 | */ |
| 13 | @JacksonStdImpl | 16 | @JacksonStdImpl |
| 14 | public class NumberSerializer extends com.fasterxml.jackson.databind.ser.std.NumberSerializer { | 17 | public class NumberSerializer extends com.fasterxml.jackson.databind.ser.std.NumberSerializer { |
| 18 | + | ||
| 15 | private static final long MAX_SAFE_INTEGER = 9007199254740991L; | 19 | private static final long MAX_SAFE_INTEGER = 9007199254740991L; |
| 16 | private static final long MIN_SAFE_INTEGER = -9007199254740991L; | 20 | private static final long MIN_SAFE_INTEGER = -9007199254740991L; |
| 17 | 21 | ||
| 18 | public static final NumberSerializer INSTANCE = new NumberSerializer(Number.class); | 22 | public static final NumberSerializer INSTANCE = new NumberSerializer(Number.class); |
| 23 | + | ||
| 19 | public NumberSerializer(Class<? extends Number> rawType) { | 24 | public NumberSerializer(Class<? extends Number> rawType) { |
| 20 | super(rawType); | 25 | super(rawType); |
| 21 | } | 26 | } |
| 27 | + | ||
| 22 | @Override | 28 | @Override |
| 23 | public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException { | 29 | public void serialize(Number value, JsonGenerator gen, SerializerProvider serializers) throws IOException { |
| 24 | // 超出范围 序列化位字符串 | 30 | // 超出范围 序列化位字符串 |