为啥没有为 java 枚举正确生成 Json?
Posted
技术标签:
【中文标题】为啥没有为 java 枚举正确生成 Json?【英文标题】:Why Json does not get generated properly for java enum?为什么没有为 java 枚举正确生成 Json? 【发布时间】:2013-10-19 10:53:06 【问题描述】:我有一个 StepEnum,我想像这样生成 json:
"success":true,"stepList":["name":"My First Step","index":0,"status":"active","name":"My Second Step","index":1,"status":"inactive"]
但是我得到这样的输出:
"success":true,"stepList":["MY_FIRST_STEP","MY_SECOND_STEP"]
我需要在我的 Enum 类中进行哪些更改。 Json 是由 spring 框架生成的。 这是我的 StepEnum 类:
public enum StepEnum
MY_FIRST_STEP("My First Step",0),
MY_SECOND_STEP("My Second Step",1);
private String label;
private int index;
private String status;
private StepEnum(String label, int index)
this.label = label;this.index = index;
public void setIndex(int index)
this.index = index;
public int getIndex()
return index;
public void setLabel(String label)
this.label = label;
public String getLabel()
return label;
public String getStatus()
return status;
public void setStatus(String status)
this.status = status;
【问题讨论】:
Serializing enums with Jackson 的可能重复项 【参考方案1】:这篇文章似乎解决了这个问题和答案: http://www.baeldung.com/jackson-serialize-enums
顺便说一句,我发现枚举属性的设置器非常可疑。枚举是静态的、共享的等等......在我看来,它们需要一个非常不寻常的情况才能成为不可变的。
【讨论】:
@BrainT 这种做法越来越频繁,因为枚举现在被积极用于实现Singleton
模式。这也适用于单实例有状态处理程序(这里可能就是这种情况)。
有趣,我没有考虑过。尽管如此,为了帮助团队成员把事情做好,我认为这些二传手是例外而不是规则。特殊的 javadoc 不会出错。以上是关于为啥没有为 java 枚举正确生成 Json?的主要内容,如果未能解决你的问题,请参考以下文章
java中 调用native方法,生成头文件时,为啥不正确?
有没有一种正确的方法可以使用 JOOQ 为所有方言创建一个包含枚举的表?
Swagger Gradle 插件在构建期间没有为 spring mvc 正确生成 openapi.json 文件
spring-configuration-metadata.json 没有为多模块项目正确生成