Преобразование составного объекта Java в CSV с Джексоном - PullRequest
0 голосов
/ 23 ноября 2018

С Джексоном мне нужно преобразовать экземпляр моего класса Test в CSV, но у меня возникают проблемы с классом, который содержит один список (Inner)

Пример:

public class Test {

    String testName;

    @JsonUnwrapped
    Simple simple;

    @JsonUnwrapped
    Inner inner;

    public Test(String testName, Simple simple, Inner inner) {
        this.testName = testName;
        this.simple = simple;
        this.inner = inner;
    }

    public String getTestName() {
        return testName;
    }

    public void setTestName(String testName) {
        this.testName = testName;
    }

    public Simple getSimple() {
        return simple;
    }

    public void setSimple(Simple simple) {
        this.simple = simple;
    }

    public Inner getInner() {
        return inner;
    }

    public void setInner(Inner inner) {
        this.inner = inner;
    }
}

class Inner {
    @JsonUnwrapped
    List<Person> persons;

    public Inner(List<Person> persons) {
        this.persons = persons;
    }

    public List<Person> getPersons() {
        return persons;
    }

    public void setPersons(List<Person> persons) {
        this.persons = persons;
    }
}

class Person {
    String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

class Simple {
    String simpleName;

    public Simple(String simpleName) {
        this.simpleName = simpleName;
    }

    public String getSimpleName() {
        return simpleName;
    }

    public void setSimpleName(String simpleName) {
        this.simpleName = simpleName;
    }
}

class Main {
    public static void main(String[] args) {
        Simple simple = new Simple("simple");
        Person person = new Person("jesus");
        Inner inner = new Inner(Arrays.asList(person));

        Test test = new Test("test", simple, inner);
        CsvMapper mapper = new CsvMapper();
        CsvSchema schema = mapper.schemaFor(Test.class);
        try {
            String csv = mapper.writer(schema).writeValueAsString(test);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

    }
}

Для свойств объектов я использовал аннотацию @JsonUnwrapped, как рекомендовано для этой ссылки , но я получаю одно исключение, когда Джексон пытается преобразовать список Inner.persons:

enter image description here

Как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...