Столкнулся с проблемой конверации строки json в объект. Я использую
mapper.readValue(json, Block.getClass())для парсинга. Проблема случаеться когда необходимо распарсить объект, который внутри себя содержит другой объект с конструктором. Вот примеры классов.
Конвертируемый класс
public class Block{
private Staff staff;
public Staff getStaff()
{
return staff;
}
public void setStaff(Staff staff)
{
this.staff = staff;
}
}
Класс с конструктором
public class Staff
{
private String name;
public Staff(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
Как возможно конвертнуть его не прибегая к написанию собственного парессера?
Я так понимаю используется Jackson. Попробуй создать пустой конструктор
Для того чтобы десериализовать JSON не обязательно использовать класс из библиотеки, которую вы не можете изменить, чтобы добавить туда noarg-конструктор. Но вы можете создать наследуемый класс, в котором можно это сделать.
public class StaffJson extends Stuff
{
public StaffJson() {
super("");
}
}
Или же просто создать другую модель и добавить туда конструктор. Потом можно написать метод, который будет конвертировать один объект в другой
Staff convert(StaffJson sj) {
return new Staff(sj.getName())
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости