web-dev-qa-db-ja.com

Gsonで列挙型をシリアル化および逆シリアル化します

このような単純な列挙型をgson 2.2.4でシリアル化および逆シリアル化するにはどうすればよいですか?

public enum Color {

    RED, BLUE, YELLOW;
}
56
user2183448

Gson API documentation によると、GsonはEnumのデフォルトのシリアライゼーション/デシリアライゼーションを提供するため、基本的には他の型と同様に、標準のtoJsonおよびfromJsonメソッドを使用してシリアル化および非シリアル化されます。

27
MikO

これを試すことができます。

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

これはうまく機能しますが、どのバージョンの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