java枚举转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技术与相关干货分享,回复关键字获取对应干货,本文版权归作者软件老王所有,转载需注明作者、超链接,否则保留追究法律责任的权利。