我在尝试序列化/反序列化Java中的某些enum
时遇到了一些麻烦。这里是我的枚举类:序列化/反序列化公共枚举的简单方法?
FrequencyType.java:
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public enum FrequencyType {
NONE,
HOURLY,
DAILY,
WEEKLY,
MONTHLY;
}
Controller.java
@RequestMapping(method = RequestMethod.POST)
public Object createFrequency(@RequestBody FrequencyType frequencyType) throws Exception {
...
frequencyManager.createFrequency(frequencyType);
...
}
我试图用createFrequency
方法采取在FrequencyType
作为json
输入。这是我输入的例子:
{
"frequencyType": "HOURLY"
}
但是,每当我试着通过REST API来调用这个方法,我得到一个错误说:
“无法读取JSON:无法反序列化 com.zuora.cds.api.schedule.FrequencyType out of START_OBJECT token \ n at [Source:[email protected]; line:1,column:1]; 嵌套异常是 com.fasterxml .jackson.databind.JsonMappingException:不能 反序列化com.zuora.cds.api.schedul的实例e.Frequency在[Source: [email protected];中输入START_OBJECT标记\ n的 ;行:1,柱:1]”,
我曾试图在上面JsonInclude
和JsonIgnoreProperties
annotationis增加,但似乎并没有帮助我也尝试添加getters
和setters
像这样:
FrequencyType getNone() {
return FrequencyType.NONE;
}
FrequencyType getHourly() {
return FrequencyType.HOURLY;
}
FrequencyType getDaily() {
return FrequencyType.DAILY;
}
FrequencyType getWeekly() {
return FrequencyType.WEEKLY;
}
FrequencyType getMonthly() {
return FrequencyType.MONTHLY;
}
void setNone(FrequencyType frequencyType) {
this.equals(frequencyType);
}
void setHourly(FrequencyType frequencyType) {
this.equals(frequencyType);
}
void setDaily(FrequencyType frequencyType) {
this.equals(frequencyType);
}
void setWeekly(FrequencyType frequencyType) {
this.equals(frequencyType);
}
void setMonthly(FrequencyType frequencyType) {
this.equals(frequencyType);
}
,使得POJO表示将有望转变JSON为FrequencyType
但我最终得到了同样的错误。任何帮助,将不胜感激。谢谢!
尝试'{ “frequencyType”:1}',如果不行'Serialize'一个' FrequencyType“,看看你的图书馆期望什么。 –
@ElliottFrisch你能详细说明你的工作'Serialize'是什么意思'FrequencyType'?第一种方法不起作用。 – user1871869