Я бы хотел десериализовать строку json в объект java.Я хотел написать универсальный метод.
public class ObjectSerializer<T> {
T t;
private ObjectMapper mapper = new ObjectMapper();
/* public Person deSerial(String json) throws Exception {
TypeReference<Person> typeRef = new TypeReference<Person>() {};
return mapper.readValue(json, typeRef);
} */
public T deSerialize(String jsonInput) throws Exception {
TypeReference<T> typeRef
= new TypeReference<T>() {};
return mapper.readValue(jsonInput, typeRef);
}
}
Когда я вызываю deSerialize(validPersonJsonString) [validPersonJsonString : valid person JSON String]
, он не работает, он выдает мне ошибку:
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.example.Person.
Тогда как при вызовепрокомментированный deSerial
метод, он отлично работает.Пожалуйста, объясните проблему.
Спасибо.