Я пытаюсь десериализовать JSON от использования API. Однако тело JSON, полученное из API, не соответствует. Иногда это список, а иногда как отдельный элемент.
Пример:
"Charge": [
{
"ChargeType": "EXPRESS 12:00",
"ChargeAmount": 0.0
},
{
"ChargeCode": "YK",
"ChargeType": "12:00 PREMIUM",
"ChargeAmount": 0.0
},
]
А в другом случае:
"Charge": {
"ChargeType": "EXPRESS",
"ChargeAmount": 8.5
}
Я использую RestTemplate
и DTO.
Мой DTO построен следующим образом.
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Charges {
@JsonProperty(value = "Currency")
private String currency;
@JsonProperty(value = "Charge")
private List<Charge> charges;
}
Это не работает в случае, когда он приходит как объект:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<Charge>` out of START_OBJECT token
Есть ли как я могу решить эту проблему, не создавая свой Custom JSON Converter? И если мне нужно создать его, как я могу это сделать?