it-swarm.com.de

serialisieren und deserialisieren Sie enum mit Gson

Wie kann ich eine einfache Aufzählung wie diese mit gson 2.2.4 serialisieren und deserialisieren?

public enum Color {

    RED, BLUE, YELLOW;
}
56
user2183448

Gemäß der Gson API-Dokumentation bietet Gson die Standard-Serialisierung/-Deserialisierung von Enum, also sollte dies grundsätzlich so sein Serialisiert und deserialisiert mit den Standardmethoden toJson und fromJson, wie bei jedem anderen Typ.

27
MikO

Sie können dies versuchen.

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;
    }

}
175
Julio Rodrigues

Das funktioniert auch, ich weiß aber nicht, von welcher GSON-Version:

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

    private int value;

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

    public int getValue()
    {
        return(value);
    }
}
1
Bart Burg