如何通过GSON序列化和反序列化接口中的枚举?

时间:2015-11-06 06:27:40

标签: java gson

我正在尝试通过GSON序列化和反序列化接口内部的枚举。 如果有人有东西,请帮忙。 在此先感谢.. :))

这是我的界面..

public interface Module {
    @Expose
    public enum CATEGORY {
        INPUT,
        OUTPUT,
        LIGHTS,        
        COMMUNICATION,
        ...
    }
    @Expose
    public enum TYPE {
        INPUT,
        OUTPUT,
        ANALOG,
        DIGITAL,
        ...
    }
}

2 个答案:

答案 0 :(得分:0)

试试这个:

Module.CATEGORY m = Module.CATEGORY.COMMUNICATION;
Gson gson = new Gson();
System.out.println(gson.toJson(m));

这将打印您的枚举器名称,

答案 1 :(得分:0)

请尝试以下代码。

public class Tester {

    public static void main(String[] args) {

        Module.CATEGORY comm = Module.CATEGORY.LIGHTS;
        Gson gson = new Gson();

        String json = gson.toJson(comm);
        if (gson.fromJson(json, Module.CATEGORY.class) == Module.CATEGORY.LIGHTS)
            System.out.println("It works!");

    }
}

打印:

  

有效!

通过。

序列化您的枚举
public interface Module {

    public enum CATEGORY implements Serializable {
        INPUT,
        OUTPUT,
        LIGHTS,        
        COMMUNICATION
    }
    public enum TYPE implements Serializable {
        INPUT,
        OUTPUT,
        ANALOG,
        DIGITAL
    }
}