Я пытаюсь преобразовать JSON String (должен быть в списке) в список объектов:
[
{
"paramName":"Content-Type",
"paramValue":"text/xml; charset\u003d\"utf-8\""
}
]
Это мой класс Service.class:
String jSONString = new Gson().toJson(systemParams);
ObjectMapper mapper = new ObjectMapper();
List<A> map = (List<A>) mapper.readValue(jSONString, A.class);
Это моя модель:
@Data
@AllArgsConstructor
public class A {
String paramName;
String paramValue;
}
Но я получил исключение:
Невозможно десериализовать экземпляр java.util.LinkedHashMap
Поэтому я попытался по-другому:
A[] map = mapper.readValue(jSONString, A[].class);
И я получил:
InvalidDefinitionException: Невозможно создать экземпляр com.model.A
(никаких создателей, как по умолчанию, не существует):
ОБНОВЛЕНИЕ:
Я пытался изменить Service.class для:
List<A> map = mapper.readValue(jSONString, new TypeReference<List<A>>(){});
Все еще получено исключение:
com.faster xml .jackson.databind.ex c .InvalidDefinitionException: Невозможно создать экземпляр com.model.A
(не существует создателей, как, например, конструкция по умолчанию):
Поэтому я удалил аннотацию @AllArgsConstructor и добавил конструктор вручную:
public A(String paramName, String paramValue) {}
И еще исключение:
com.faster xml .jackson.databind.ex c .InvalidDefinitionExc eption: Невозможно создать экземпляр com.model.A
(создатели, такие как конструкция по умолчанию, не существуют):