From 9b4433fddf5b401edb0aace8a404ac733b122702 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 03 四月 2025 14:35:02 +0800 Subject: [PATCH] 添加非密字段显示 --- Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/jackson/BigNumberSerializer.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/jackson/BigNumberSerializer.java b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/jackson/BigNumberSerializer.java new file mode 100644 index 0000000..c573c21 --- /dev/null +++ b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/jackson/BigNumberSerializer.java @@ -0,0 +1,44 @@ +package org.springblade.core.tool.jackson; + +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; + +/** + * 澶ф暟鍊煎簭鍒楀寲锛岄伩鍏嶈秴杩噅s鐨勭簿搴︼紝閫犳垚绮惧害涓㈠け + * + * @author L.cm + */ +@JacksonStdImpl +public class BigNumberSerializer extends NumberSerializer { + + /** + * js 鏈�澶у�间负 Math.pow(2, 53)锛屽崄杩涘埗涓猴細9007199254740992 + */ + private static final long JS_NUM_MAX = 0x20000000000000L; + /** + * js 鏈�灏忓�间负 -Math.pow(2, 53)锛屽崄杩涘埗涓猴細-9007199254740992 + */ + private static final long JS_NUM_MIN = -0x20000000000000L; + /** + * Static instance that is only to be used for {@link java.lang.Number}. + */ + public final static 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 { + long longValue = value.longValue(); + if (longValue < JS_NUM_MIN || longValue > JS_NUM_MAX) { + gen.writeString(value.toString()); + } else { + super.serialize(value, gen, provider); + } + } +} -- Gitblit v1.9.3