Ich habe einige Probleme beim Versuch, einige enum
in Java serialisieren/deserialisieren. Hier ist meine Enum Klasse:Einfache Möglichkeit, öffentliche enums zu serialisieren/deserialisieren?
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);
...
}
Ich versuche, die createFrequency
Methode zu verwenden, in einem FrequencyType
als json
Eingang zu nehmen. Hier ist ein Beispiel für meine Eingabe:
{
"frequencyType": "HOURLY"
}
Jedes Mal, wenn ich versuche, diese Methode über meine REST-API aufzurufen, erhalte ich eine Fehlermeldung, dass:
„konnte nicht JSON lesen: Kann nicht deserialisieren Instanz com.zuora.cds.api.schedule.FrequencyType aus START_OBJECT Token \ n an [Quelle: [email protected]; line: 1, Säule: 1]; verschachtelte Ausnahme ist com.fasterxml .jackson.databind.JsonMappingException: Kann Instanz von com.zuora.cds.api.schedul nicht deserialisieren e.FrequencyType aus von START_OBJECT Token \ n um [Quelle: [email protected]; Zeile: 1, Spalte:. 1]“,
Ich habe in den oben JsonInclude
und JsonIgnoreProperties
annotationis hinzuzufügen versucht, aber das scheint nicht Ich habe auch versucht getters
und setters
wie so hinzuzufügen, zu helfen:
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);
}
, so dass die POJO Darstellung hoffentlich die JSON in eine FrequencyType
verwandeln würde, aber ich am Ende den gleichen Fehler. Jede mögliche Hilfe würde geschätzt. Dank!
Try '{ "frequencyType": 1}', wenn das nicht 'Serialize' funktioniert ein' FrequencyType' und sehen Sie, was Ihre Bibliothek erwartet. –
@ElliottFrisch Könntest du näher erläutern, was du mit "Serialisieren" und "FrequencyType" anfangen willst? Die erste Methode hat nicht funktioniert. – user1871869