Enums 无法处理spring数据中的枚举
我使用枚举作为数据模型的一部分。当我反序列化输入json时,数据模型中的枚举不会被填充 你能给个建议吗Enums 无法处理spring数据中的枚举,enums,spring-data-mongodb,Enums,Spring Data Mongodb,我使用枚举作为数据模型的一部分。当我反序列化输入json时,数据模型中的枚举不会被填充 你能给个建议吗 公共枚举访问类型枚举{ PUBLIC(1, "public"), PRIVATE(2, "private"), private int code; private String accessType; private AccessTypeEnum(int code, String accessType) { this.code = code; this.accessTyp
公共枚举访问类型枚举{
PUBLIC(1, "public"),
PRIVATE(2, "private"),
private int code;
private String accessType;
private AccessTypeEnum(int code, String accessType) {
this.code = code;
this.accessType = accessType;
}
public String getAccessType() {
return accessType;
}
public int getCode() {
return code;
}
}
我的输入是
{
“访问类型”:“公共”
}
反序列化
AccessTypeEnum e=gson.fromJson(inputJson,AccessTypeEnum.class)
您应该向所有枚举字段添加注释“SerializedName”。注释的文档如下所示:
您的枚举将如下所示
import com.google.gson.annotations.SerializedName;
public enum AccessTypeEnum {
@SerializedName("public") PUBLIC(1, "public"),
@SerializedName("private") PRIVATE(2, "private"),
private int code;
private String accessType;
private AccessTypeEnum(int code, String accessType) {
this.code = code;
this.accessType = accessType;
}
public String getAccessType() { return accessType; }
public int getCode() { return code; }
}
另外请注意,您不能反序列化枚举,您应该使用包装器对象,如:
class MyObj {
AccessTypeEnum accessType;
}
public static final void main(String args[]) {
MyObj obj = new Gson().fromJson("{ \"accessType\": \"public\" }", MyObj.class);
System.out.println("" + obj.accessType);
}
如果你接受我的回答,我将不胜感激。有关接受答案的所有信息可在此处找到,以供参考: