У меня есть MultivaluedMap<String, String>
, который представляет параметры формы запроса POST. Я хотел бы преобразовать POJO из этого класса только с теми полями, которые мне нужны для дальнейшей обработки. Я нашел несколько ответов, которые предлагают использовать convertValue()
от Джексона ObjectMapper
.
Конвертировать карту к POJO
public void process(MultivaluedMap<String, String> formParams) {
ObjectMapper objectMapper = new ObjectMapper();
final MyPojo myPojo = objectMapper.convertValue(formParams,MyPojo.class);
}
POJO
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyPojo {
private String status;
@JsonProperty("order_no")
private String orderId;
@JsonProperty("tid")
private String transactionId;
}
Однако это не удается со следующим исключением:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_ARRAY token
at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: MyPojo["order_no"])
Вот так выглядит вход в отладчик: