-
Notifications
You must be signed in to change notification settings - Fork 547
Closed
Labels
Milestone
Description
问题描述
简要描述您碰到的问题。
使用fastjson2序列化报错,添加Feature.PrettyFormat能正常返回,移除出现异常
环境信息
请填写以下信息:
- OS信息: [e.g.:win10 64]
- JDK信息: [e.g.:Openjdk 21.0.4]
- 版本信息:[e.g.:Fastjson2 2.0.57]
重现步骤
如何操作可以重现该问题:
- 使用
xxx.xxx方法 - 输入
...数据 - 出现
...错误
//可在此输入示例代码
import cn.hutool.core.io.file.FileReader;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONWriter.Feature;
import lombok.Data;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.util.Map;
public class FastJsonDome {
@Data
public static class Dome {
private Map<String, BigDecimal> balanceMap;
}
@Test
public void test() {
String string = new FileReader("
[新文件 16.txt](https://github.com/user-attachments/files/20836020/16.txt)
新文件 16.txt").readString();
Dome tradeData = JSON.parseObject(string, Dome.class);
String jsonString = JSON.toJSONString(tradeData);
String jsonString1 = JSON.toJSONString(tradeData, Feature.PrettyFormat);
String jsonString2 = JSON.toJSONString(tradeData.balanceMap);
}
}期待的正确结果
对您期望发生的结果进行清晰简洁的描述。
正常返回
相关日志输出
请复制并粘贴任何相关的日志输出。
java.lang.StringIndexOutOfBoundsException: Range [27635, 27635 + 22) out of bounds for length 27648
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromIndexSize(Preconditions.java:118)
at java.base/jdk.internal.util.Preconditions.checkFromIndexSize(Preconditions.java:397)
at java.base/java.lang.String.checkBoundsOffCount(String.java:4853)
at java.base/java.lang.String.getChars(String.java:1709)
at com.alibaba.fastjson2.JSONWriterUTF16.writeDecimal(JSONWriterUTF16.java:1086)
at com.alibaba.fastjson2.writer.ObjectWriterImplMap.write(ObjectWriterImplMap.java:547)
at com.alibaba.fastjson2.writer.OWG_1_1_Dome.write(Unknown Source)
at com.alibaba.fastjson2.JSON.toJSONString(JSON.java:3086)
at com.test.FastJsonDome.test(FastJsonDome.java:28)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
附加信息
如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。