сериализация и десериализация перечисления с помощью Gson [дубликат]


этот вопрос уже есть ответ здесь:

  • Использование перечислений при разборе JSON с GSON 7 ответов

Как я могу сериализовать и десериализовать простое перечисление, подобное этому, с помощью gson 2.2.4 ?

public enum Color {

    RED, BLUE, YELLOW;
}
3 52

3 ответа:

По данным Gson API documentation, Gson обеспечивает сериализацию/десериализацию по умолчанию Enum, поэтому в основном он должен быть сериализован и десериализован с использованием стандарта toJson и fromJson методы, как с любым другим типом.

вы можете попробовать это.

import com.google.gson.annotations.SerializedName;

public enum Color {

    @SerializedName("0")
    RED (0), 

    @SerializedName("1")
    BLUE (1),

    @SerializedName("2")
    YELLOW (2);

    private final int value;
    public int getValue() {
        return value;
    }

    private Color(int value) {
        this.value = value;
    }

}

Это тоже отлично работает, не знаю, из какой версии GSON:

public enum OrderLineTimeRegistrationStatus {
    None(0), Started(1), Paused(2);

    private int value;

    private OrderLineTimeRegistrationStatus(int value)
    {
        this.value=value;
    }

    public int getValue()
    {
        return(value);
    }
}