У меня есть веб-приложение Java с несколькими веб-модулями. Один будет действовать как сервер, а другой модуль действует как клиент, оба развернуты на разных серверах. Клиентское приложение будет вызывать серверное приложение через службу отдыха, чтобы получать и сохранять данные. С сервера я получаю строку JSON, и я пытаюсь преобразовать ее в объект с типами Generic.Jackson with Generics JSON Не удается создать экземпляр java.lang.Class
Вот мой объект
public class MyObject<T> {
private String name;
private List<T> list;
private final Class<T> referenceType;
@JsonCreator
public MyObject(@JsonProperty("referenceType") Class<T> referenceType) {
this.referenceType = referenceType;
list = new ArrayList<T>();
}
public Class<T> getReferenceType() {
return this.referenceType;
}
//getter and setter
}
На сервере я устанавливаю объект следующим образом
public String getAll(Long key) {
List<SomeObject> list = someObjectDao.getAll(key);
MyObject<SomeObject> myObject = new MyObject<SomeObject>(
SomeObject.class);
appObject.setList(list);
JSONObject jsonget = new JSONObject(myObject);
return jsonget.toString();
}
В приложении клиента, я получаю строку JSON, как этот
{"name":"someName","referenceType":"class com.pkg.model.SomeObject","list":[{list - index - 0},{list - index-1}]}
И я пытаюсь преобразовать строку в MyObject введите следующий путь
private MyObject readJson(String output) throws Exception {
return new ObjectMapper().readValue(output,
new TypeReference<MyObject>() {
});
}
Но я получаю следующее исключение,
Can not construct instance of java.lang.Class, problem: class com.pkg.model.SomeObject
at [Source: [email protected]; line: 1, column: 151]
Как я могу преобразовать строку JSON объекта?
Спасибо.