Конвертация Json в объект

153
22 февраля 2019, 23:50

Столкнулся с проблемой конверации строки 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;
    }
}

Как возможно конвертнуть его не прибегая к написанию собственного парессера?

Answer 1

Я так понимаю используется Jackson. Попробуй создать пустой конструктор

Answer 2

Для того чтобы десериализовать JSON не обязательно использовать класс из библиотеки, которую вы не можете изменить, чтобы добавить туда noarg-конструктор. Но вы можете создать наследуемый класс, в котором можно это сделать.

public class StaffJson extends Stuff
{
   public StaffJson() {
     super("");
   }
}

Или же просто создать другую модель и добавить туда конструктор. Потом можно написать метод, который будет конвертировать один объект в другой

 Staff convert(StaffJson sj) {
   return new Staff(sj.getName())
 } 
READ ALSO
Почему не получается подключить css и js к html странице в Spring MVC проекте? Java

Почему не получается подключить css и js к html странице в Spring MVC проекте? Java

Почему не подключаются стили и js к странице? При отображении страницы- у этих файлов получаю

205
Пример с оператором if из книги

Пример с оператором if из книги

Из книги: Давайте изменим метод dive() в классе Fish, чтобы ограничить сотней метров глубину, на которой может плавать наша рыбка:

217
найти элемент по тексту в теге span

найти элемент по тексту в теге span

Подскажите, как найти элемент по тексту в теге span?

214
Области видимости пакетов внутри java project в Eclipse

Области видимости пакетов внутри java project в Eclipse

Не до конца понимаю, в чем разница между java проектами и пакетами в Eclipse IDEСкажем, есть два проекта: ProjectA и ProjectB

181