This repository was archived by the owner on Oct 23, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
This repository was archived by the owner on Oct 23, 2024. It is now read-only.
@JSONField 枚举序列化 栈溢出 #3601
Copy link
Copy link
Closed
Milestone
Description
版本:1.2.72,1.2.73,1.2.75
枚举中只有一个值,并且被@JSONField,序列化时溢出
枚举2个值以上,序列化正常。
@Data
public class TestEntity {
private TestEnum testEnum;
private String testName;
}
public enum TestEnum {
@JSONField(name = "xx")
test1("1");
// @JSONField(name = "xx2")
// test2("2");
private String title;
private TestEnum(String title) {
this.title = title;
}
}
public static void main(String[] args) {
TestEntity testEntity = new TestEntity();
testEntity.setTestName("xxxx");
testEntity.setTestEnum(TestEnum.test1);
System.out.println(JSON.toJSONString(testEntity));
}
Exception in thread "main" java.lang.StackOverflowError
at com.alibaba.fastjson.JSON.getMixInAnnotations(JSON.java:1384)
at com.alibaba.fastjson.serializer.SerializeConfig.get(SerializeConfig.java:878)
at com.alibaba.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:444)
at com.alibaba.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:440)
at com.alibaba.fastjson.serializer.JSONSerializer.getObjectWriter(JSONSerializer.java:448)
at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:309)
at com.alibaba.fastjson.serializer.EnumSerializer.write(EnumSerializer.java:58)
at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:312)
at com.alibaba.fastjson.serializer.EnumSerializer.write(EnumSerializer.java:58)
at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:312)
Metadata
Metadata
Assignees
Labels
No labels