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朋友们,分享一些他们的技术见解和生活故事。