枚举类转成json

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * portlet类别枚举类
 */
public enum PortletType {
    SYSTEM_LIST_DATA(1, "子系统列表数据"),
    SYSTEM_CHART_DATA(2, "子系统图表数据"),
    PROJECT_PROFILE(3, "项目简介"),
    ENVIRON_OVERVIEW(4, "建筑环境概览"),
    WEATHER(5, "天气预报");

    private int code;
    private String name;

    PortletType(int code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 根据code获取name
     * @param code
     * @return
     */
    public static String getDes(int code) {
        for (PortletType e : PortletType.values()) {
            if (e.getCode() == code) {
                return e.name;
            }
        }
        return null;
    }

    /**
     *将该枚举全部转化成json
     * @return
     */
    public static String toJson(){
        JSONArray jsonArray = new JSONArray();
        for (PortletType e : PortletType.values()) {
            JSONObject object = new JSONObject();
            object.put("typeId", e.getCode());
            object.put("typeName", e.getName());
            jsonArray.add(object);
        }
        return jsonArray.toString();
    }

    /**
     * 重写toString,单个转化成json
     * @return
     */
    @Override
    public String toString() {
        JSONObject object = new JSONObject();
        object.put("typeId",code);
        object.put("typeName",name);
        System.out.println(object.toString());
        return object.toString();
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

简单的问题搞复杂了,其使用JSONObject能很方便的实现,千万别自己拼字符串,费时费力。

原文地址:https://www.cnblogs.com/winkey4986/p/5238698.html