У меня возникли проблемы с сериализацией/десериализацией enum
в Java. Вот мой перечисление класс:Простой способ сериализации/десериализации публичных перечислений?
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 из START_OBJECT маркера \ N в [Источник: [email protected]; линии: 1, колонка: 1]; вложенной исключение составляет com.fasterxml .jackson.databind.JsonMappingException: не может десериализовать экземпляр com.zuora.cds.api.schedul e.FrequencyType out токена START_OBJECT \ n в [Источник: [email protected]; линия: 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
, но я в конечном итоге получить ту же ошибку. Любая помощь будет оценена. Спасибо!
Try '{ "frequencyType": 1}', если это не работает, '' Serialize' FrequencyType' и посмотреть, что ожидает ваша библиотека. –
@ElliottFrisch не могли бы вы рассказать о том, что вы хотите для работы 'Serialize' a' FrequencyType'? Первый метод не работал. – user1871869