Столкнулся с проблемой конверации строки 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())
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Почему не подключаются стили и js к странице? При отображении страницы- у этих файлов получаю
Из книги: Давайте изменим метод dive() в классе Fish, чтобы ограничить сотней метров глубину, на которой может плавать наша рыбка:
Не до конца понимаю, в чем разница между java проектами и пакетами в Eclipse IDEСкажем, есть два проекта: ProjectA и ProjectB