温馨提示:本文翻译自stackoverflow.com,查看原文请点击:json - Is it possible in Java to return enum name and values together?
enums java json spring-mvc jackson

json - 在Java中是否可以将枚举名称和值一起返回?

发布于 2020-03-27 11:49:47

是否可以将ENUM名称和标签放在一起?喜欢:

[
    {"COMBUSTIVEL", "Combustível"},
    {"TROCADEOLEO", "Troca de Óleo"},
    {"PNEUDIANTEIRO", "Pneu Dianteiro"},
    {"PNEUTRASEIRO", "Pneu Traseiro"},
    {"CORRENTE", "Corrente"},
    {"RELACAO", "Relação"}
]

我正在使用Spring MVC,但我认为这无关紧要。

我想覆盖该toString()方法,但不幸的是它没有用。

我的代码:

public enum Categoria {
    COMBUSTIVEL("Combustível"), 
    TROCADEOLEO("Troca de óleo"), 
    PNEUDIANTEIRO("Pneu dianteiro"), 
    PNEUTRASEIRO("Pneu traseiro"), 
    CORRENTE("Corrente"), 
    RELACAO("Relação");

    private String label;

    Categoria(String item){
        this.label = item;
    }

    public String getLabel(){
        return this.label;
    }

    @Override
    public String toString() {
        return this.label;
    }

    public String[][] getList(){
        Categoria[] values = Categoria.values();

        return ?;
    }

}

结果是:

[
    "COMBUSTIVEL",
    "TROCADEOLEO",
    "PNEUDIANTEIRO",
    "PNEUTRASEIRO",
    "CORRENTE",
    "RELACAO"
]

查看更多

查看更多

提问者
Willians Martins
被浏览
112
Roman Konoval 2019-07-03 23:28

可以这样完成:

        public static String[][] getList(){
            Categoria[] values = Categoria.values();

            String[][] result = new String[values.length][2]; 

            for (int i = 0; i < values.length; ++i) {
                String[] pair = {values[i].name(), values[i].toString()};
                result[i] = pair;
            }

            return result;
        }