web-dev-qa-db-fra.com

sérialiser et désérialiser enum avec Gson

Comment puis-je sérialiser et désérialiser une énumération simple comme celle-ci avec gson 2.2.4?

public enum Color {

    RED, BLUE, YELLOW;
}
56
user2183448

Selon ( documentation de l'API Gson , Gson fournit la sérialisation/désérialisation par défaut de Enum, donc en gros, il devrait être sérialisé et désérialisé en utilisant les méthodes standard toJson et fromJson, comme avec tout autre type.

27
MikO

Vous pouvez essayer ça.

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

Cela fonctionne aussi bien, je ne sais pas de quelle version de 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);
    }
}
1
Bart Burg