我当前正在尝试将json中的枚举值反序列化为包含字符串的对象(该枚举值应以该字符串结尾)。
示例: 域类
public class Person {
private UUID personId;
private Occupation occupation;
}
职业类别:
public class Occupation {
private String occupationType;
}
我正在运行的代码是:
PersonResponse personResponse = JsonConverter.fromJson(message.getPayload(), new TypeReference<Person>() {
});
JSON是:
{"personId":"719e622e-6e00-4e84-b748-739f95d7c0fa", "occupationType":"STATE_EMPLOYEE"
基本上,我希望我的STATE_EMPLOYEE.name()值以Occupation类的可用对象结尾。现在,它尝试将STATE_EMPLOYEE值反序列化为Occupation类的对象,这显然不起作用。
我有办法返回这样的对象吗?我不想更改我的Person对象以容纳OccupationType枚举,因为它也包含许多其他内容。
我收到的错误是:
Can not construct instance of person.package.Occupation: no String-argument constructor/factory method to deserialize from String value ('STATE_EMPLOYEE')
它基本上无法尝试将枚举值放入包含该字符串的Occupation对象中。 (我想要我的东西在哪里)。 预先感谢!
答案 0 :(得分:0)
我通过创建自己的自定义反序列化程序解决了该问题。