Вы смотрите на это совершенно неправильно. Между CSV и JSON нет автоматического / магического преобразования. Если вы хотите сгенерировать объект User из предоставленного вами CSV, вы можете использовать следующий код:
vertx.fileSystem().rxReadFile("/home/lbulic/file.csv")
.map(buffer -> buffer.toString("UTF-8"))
.map(n -> n.split(","))
.map(data -> new User(Long.parseLong(data[0]), data[1], data[2]))
.subscribe(content -> System.out.println("Content: " + content),
err -> System.out.println("Cannot read the file: " + err.getMessage()));
Вам понадобится конструктор для объекта User, а также метод toString для правильного выполнения этого. Если вы хотите использовать JSON вместо объекта User, то простой способ - просто преобразовать сгенерированный объект User в JSON с помощью Jackson.
rtx.fileSystem().rxReadFile("/home/lbulic/file.csv")
.map(buffer -> buffer.toString("UTF-8"))
.map(n -> n.split(","))
.map(data -> new User(Long.parseLong(data[0]), data[1], data[2]))
.map(user -> Json.encode(user))
.subscribe(content -> System.out.println("Content: " + content),
err -> System.out.println("Cannot read the file: " + err.getMessage()));
Чтобы это работало, вам также понадобятся методы получения и установки для объекта User.
Если вам нужно прямое преобразование из CSV в JSON, вам нужно изменить текущую структуру вашего CSV на что-то вроде этого и включить в нее добавочную зависимость.
CSV:
id,name,surname
1,John,Smith
Зависимость:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-csv</artifactId>
<version>2.9.9</version>
</dependency>
Код:
CsvSchema csvSchema = CsvSchema.builder().setUseHeader(true).build();
CsvMapper csvMapper = new CsvMapper();
vertx.fileSystem().rxReadFile("/home/lbulic/file.csv")
.map(buffer -> buffer.toString("UTF-8"))
.map(input -> csvMapper.readerFor(Map.class).with(csvSchema).readValues(input).readAll())
.map(list -> list.stream().map(Json::encode).collect(Collectors.toList()))
.subscribe(users -> {
users.forEach(System.out::println);
}, err -> System.out.println("Cannot read the file: " + err.getMessage()));