JSON ObjectMapper в Spring - как сопоставить JSON с тремя классами?

У меня есть файл JSON:

{
  "a": "content",
  "b": "content",
  "c": "content",
  "parameters": [
    {
      "a": "content",
      "b": "content"
    }
  ],
  "parameters2": [
    {
      "a": "content"
    },
    {
      "b": "content"
    }
  ]
}

и класс модели: First.java

@Id
    @Column(name = "a")
    String a;

    @Column(name = "b")
    String b;

    @Column(c= "c")
    String author;

    @OneToMany
    List<Parameters> parameters = new LinkedList<>();

    @OneToMany
    List<Parameters2> parameters2= new LinkedList<>();

и два класса параметров, например:

@Entity
@Table(name = "table")
public class Parameters{

    @Id
    int id;

    @Column(name = "a")
    String a;
}

Я хотел бы сопоставить свой JSON с ObjectMapper. "а": "содержание", «b»: «содержание», "c": "content" Я хотел бы сопоставить с FirstClass.java, но параметры и массивы parameters2 с двумя другими классами. Как я могу это сделать? Сейчас я пробую firstClass = mapper.readValue(manifestJSON, FirstClass.class);, но он не работает.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Первый класс должен быть

@Id
@Column(name = "a")
String a;

@Column(name = "b")
String b;

List<Parameter1> parameters;

List<Parameter2> parameters2;

И ваш Parameter1 будет похож на

@Id
@GeneratedValue
Long id
@Column(name = "a")
String a;

@Column(name = "b")
String b;

И класс параметра2 будет похож на

@Entity
@Table(name = "table")
public class Parameters{

    @Id
    int id;

    @Column(name = "a")
    String a;
}

Другие вопросы по теме