1. 程式人生 > 其它 >java列舉轉json

java列舉轉json

java後端的列舉型別,要展示到前端,提供給使用者進行下拉選擇,java後端需要封裝enum為json字串提供給前端,需要首先將列舉型別轉為list,然後再轉為json字串。

1、背景

java後端的列舉型別,要展示到前端,提供給使用者進行下拉選擇,java後端需要封裝enum為json字串提供給前端,需要首先將列舉型別轉為list,然後再轉為json字串。

2、方案

方案也很簡單,使用EnumSet.allOf(TestEnum.class),將資料獲取到再塞到list中就可以了。

程式碼如下:

import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;

public enum TestEnum {
    TEST_ONE(1, "軟體老王1"),
    TEST_TWO(2, "軟體老王2"),
    TEST_THREE(3, "軟體老王3"),
    TEST_FOUR(4, "軟體老王4"),
    TEST_FIVE(5, "軟體老王5")
    ;
    /*位置編碼*/
    private Integer code;
    /*位置名稱*/
    private String name;

    TestEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    public static HashMap<Integer,String> getEnumMap() {
        HashMap<Integer, String> map = new HashMap<>();
        for (TestEnum testEnum : EnumSet.allOf(TestEnum.class)) {
            map.put(testEnum.code, testEnum.name);
        }
        return map;
    }
    public static List<HashMap<String,String>> getEnumList() {
        List<HashMap<String, String>> list = new ArrayList<>();
        for (TestEnum testEnum : EnumSet.allOf(TestEnum.class)) {
            HashMap<String, String> map = new HashMap<>();
            map.put("code",testEnum.code.toString());
            map.put("name",testEnum.name);
            list.add(map);
        }
        return list;
    }

    public static void main(String[] args) {
        System.out.println(JSONObject.toJSON(TestEnum.getEnumMap()));
        System.out.println( JSONObject.toJSON(TestEnum.getEnumList()));
    }
}

程式碼簡要說明:

(1)getEnumMap,是獲取map集合;

(2)getEnumList是獲取list集合;

(3)兩個方法均為靜態方法(static),通過類.方法直接呼叫就可以了。


更多資訊請關注公眾號:「軟體老王」,關注不迷路,軟體老王和他的IT朋友們,分享一些他們的技術見解和生活故事。

更多資訊請關注公眾號:「軟體老王」,關注不迷路,IT技術與相關乾貨分享,回覆關鍵字獲取對應乾貨,本文版權歸作者軟體老王所有,轉載需註明作者、超連結,否則保留追究法律責任的權利。