Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

@JSONField 枚举序列化 栈溢出 #3601

@linxinqiang90

Description

@linxinqiang90

版本: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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions