update 更新 BigNumberSerializer 注释
This commit is contained in:
parent
0158fb437d
commit
d29a7adc9a
|
@ -7,11 +7,23 @@ import com.fasterxml.jackson.databind.ser.std.NumberSerializer;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超出 JS 最大最小值 处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
@JacksonStdImpl
|
@JacksonStdImpl
|
||||||
public class BigNumberSerializer extends NumberSerializer {
|
public class BigNumberSerializer extends NumberSerializer {
|
||||||
|
|
||||||
private static final long JS_NUM_MAX = 9007199254740992L;
|
/**
|
||||||
private static final long JS_NUM_MIN = -9007199254740992L;
|
* 根据 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 static final BigNumberSerializer INSTANCE = new BigNumberSerializer(Number.class);
|
||||||
|
|
||||||
public BigNumberSerializer(Class<? extends Number> rawType) {
|
public BigNumberSerializer(Class<? extends Number> rawType) {
|
||||||
|
@ -20,7 +32,8 @@ public class BigNumberSerializer extends NumberSerializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException {
|
public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException {
|
||||||
if (value.longValue() >= JS_NUM_MIN && value.longValue() <= JS_NUM_MAX) {
|
// 超出范围 序列化位字符串
|
||||||
|
if (value.longValue() > MAX_SAFE_INTEGER && value.longValue() < MIN_SAFE_INTEGER) {
|
||||||
super.serialize(value, gen, provider);
|
super.serialize(value, gen, provider);
|
||||||
} else {
|
} else {
|
||||||
gen.writeString(value.toString());
|
gen.writeString(value.toString());
|
||||||
|
|
Loading…
Reference in New Issue