gpt4 book ai didi

json - Gson 。 enum 和 int 的解决方法

转载 作者:行者123 更新时间:2023-12-02 23:46:49 32 4
gpt4 key购买 nike

我从服务器得到一个 json-answer。我正在使用 GSON 库解析它。

json 中的键有一个整数值。是否可以在不更改服务器答案(它是外部服务器接口(interface),我们对其没有影响)的情况下将整数值转换为枚举?

谢谢。

更新:

json 响应。注意:我们无法更改它

"testObject":{
"id":123,
"type":42
}

枚举:

public enum ObjectTypeEnum
{
UNKNOWN_TYPE(0),
SIMPLE_TYPE(11),
COMPLEX_TYPE(42);

private int value;

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

public static ObjectTypeEnum findByAbbr(int value)
{
for (ObjectTypeEnum currEnum : ObjectTypeEnum.values())
{
if (currEnum.value == value)
{
return currEnum;
}
}

return null;
}

public int getValue()
{
return value;
}
}

和对象类

public class TestObject
{
publuc int id;
public ObjectTypeEnum type;
}

最佳答案

您可以仅使用 @SerializedName 注释来确定从线路序列化哪些值。那么您就不需要编写自定义 TypeAdapter。

import com.google.gson.annotations.SerializedName;

public enum ObjectTypeEnum {
@SerializedName("0")
UNKNOWN_TYPE(0),

@SerializedName("11")
SIMPLE_TYPE(11),

@SerialziedName("42")
COMPLEX_TYPE(42);

private int value;

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

public int getValue() {
return value;
}
}

如果您不需要在代码中获取连线值,则可以删除“值”字段和相关代码。

public enum ObjectTypeEnum {
@SerializedName("0")
UNKNOWN_TYPE,

@SerializedName("11")
SIMPLE_TYPE,

@SerialziedName("42")
COMPLEX_TYPE;
}

关于json - Gson 。 enum 和 int 的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384896/

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