MyModel. java
publi c class MyModel {
private List<ApiDetail> apiDetails;
private PolicyDetail policyDetail;
private Product product;
//getters and setters
}
PolicyDetail. java
publi c class PolicyDetail {
EnumMap<PolicyType, Policy> policyMap = null;
//getter and setters
}
PolicyType. java
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum PolicyType {
POL1,
POL2
}
Запрос. json
{
"apiDetails": [
{
"apiName": "Api1"
},
{
"apiName": "Api2"
}
],
"policyDetail": {
"policies": {
"POL1": {
"param1": "3600000",
"param2": true
},
"POL2": {
"param3": "Milli Second",
"param4": 5000
}
}
},
"product": {
"productName": "My Product"
}
}
С этим, когда я пытаюсь отправить запрос. json с помощью Почтальона. Я получаю следующую ошибку
com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `PolicyType` from String "param1": not one of the values accepted for Enum class: [POL1, POL2]
Я пытался с некоторыми ссылками Сериализация Enums и Джексон-десериализация и даже зарегистрировал мой пользовательский десериализатор, но ничего не работает.
Все эти классы уже представлены в API, которые я не могу изменить, поэтому мне придется настроить десериализатор, но я потрошен.