java列舉轉json
阿新 • • 發佈:2021-07-12
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技術與相關乾貨分享,回覆關鍵字獲取對應乾貨,本文版權歸作者軟體老王所有,轉載需註明作者、超連結,否則保留追究法律責任的權利。