Парсинг списка/массива объектов из yaml с помощью jackson ObjectMapper

Не совсем понимаю какой объект мне надо создать чтобы корректно распарсить данные такого типа:

- name: 'Access is denied'
  patterns:
    - 'Last error \d+: Access is denied.'
    - 'some'
    - 'gome'
  description: |
    Access is denied for the resource.

- name: 'Some error'
  patterns:
    - 'some'
    - 'com'
    - 'gone'
  description: |
    some text description

Думаю что тут нужна map, но не очень получилось это все реализовать.

Файл такого типа:

name: 'Access is denied'
      patterns:
        - 'Last error \d+: Access is denied.'
        - 'some'
        - 'gome'
      description: |
        Access is denied for the resource.

легко смог распарсить в такой класс:

import java.util.List;

public class ErrorInfo {
    private String name;
    private List<String> patterns;
    private String description;

    public ErrorInfo(String name, List<String> patterns, String description) {
        this.name = name;
        this.patterns = patterns;
        this.description = description;
    }

    public ErrorInfo() {
    }

Пробовал создавать лист из таких классов но тоже не вышло. Буду рад любому совету.


Ответы (1 шт):

Автор решения: Михаил Муругов

При десериализации Вам надо указать тип, как список или массив Ваших объектов ErrorInfo. Вариантов несколько, см. https://stackoverflow.com/a/6349488/10941639.
Самые, на мой взгляд, простые:

List<ErrorInfo> errors = objectMapper.readValue(yamlSource, new TypeReference<>() {});
List<ErrorInfo> errors = Arrays.asList(objectMapper.readValue(yamlSource, ErrorInfo[].class));
→ Ссылка