@JsonProperty değerinden enum sabitini alın
Oct 18 2020
Jackson ile JSON serileştirme / seriyi kaldırma için @JsonProperty ile işaretlenmiş bir Enum var ve belirli bir String JsonProperty için enum değerini almak istiyorum:
public enum TimeBucket {
@JsonProperty("Daily") DAY_BUCKET,
@JsonProperty("Weekly") WEEK_BUCKET,
@JsonProperty("Monthly") MONTH_BUCKET;
}
İstenen yöntem genel / statik olmalıdır (bu nedenle, her numaralandırmada onu çoğaltmak gerekmez) ve Json Özelliklerinin birinden bir enum değeri çıkarır:
public static <T extends Enum<T>> T getEnumFromJsonProperty(Class<T> enumClass, String jsonPropertyValue)
Yanıtlar
epol Oct 18 2020 at 16:21
İstenilen sonuç aşağıdaki yöntemle elde edilebilir:
public static <T extends Enum<T>> T getEnumValueFromJsonProperty(Class<T> enumClass, String jsonPropertyValue) {
Field[] fields = enumClass.getFields();
for (int i=0; i<fields.length; i++) {
if (fields[i].getAnnotation(JsonProperty.class).value().equals(jsonPropertyValue)) {
return Enum.valueOf(enumClass, fields[i].getName());
}
}
return null;
}
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı