gpt4 book ai didi

java - 小写枚举 Gson

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:32:30 24 4
gpt4 key购买 nike

我需要使用 Gson 输出枚举值,由于客户端限制,它需要小写。

例如 CLOSE_FILE 将是 close_file

有没有简单的方法来做到这一点?我已经看过制作一个实现 JsonSerializer 的类,但看起来我必须手动序列化整个类(这非常复杂)是这种情况吗?

最佳答案

如果您可以控制 enum 类型,请使用 @SerializedName 注释其成员并为其提供适当的序列化值。例如,

enum Action {
@SerializedName("close_file")
CLOSE_FILE;
}

如果您无法控制 enum,请在创建 Gson 实例时提供自定义 TypeAdapter。例如,

Gson gson = new GsonBuilder().registerTypeAdapter(Action.class, new TypeAdapter<Action>() {

@Override
public void write(JsonWriter out, Action value) throws IOException {
out.value(value.name().toLowerCase());
}

@Override
public Action read(JsonReader in) throws IOException {
return Action.valueOf(in.nextString().toUpperCase());
}
}).create();

关于java - 小写枚举 Gson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29056676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com