Как связать список объектов из Multipart param с objectMapper? - PullRequest
3 голосов
/ 08 апреля 2019

Мой API получает параметр MultipartFile.Я не могу связать этот файл со списком объектов?

Я работаю на Spring-boot 2.0.8 с Java 8

Я пробовал это:

public ResponseEntity<Long> addReferenceByFile(HttpServletRequest request,
                                               @PathVariable String numeroLicence,                                                     
@RequestParam("references") MultipartFile references) throws URISyntaxException {

и это:

try {
     InputStream inputStream = references.getInputStream();
     ObjectMapper objectMapper = new ObjectMapper();
     ArrayList<Reference> references1 = objectMapper.readValues(references, Reference.class);
    } catch (IOException e) {
        e.printStackTrace();
    }

ObjectMapper не принимает данные InputStream.Мое требование - получить список для однократного лечения.

Может ли кто-нибудь помочь мне найти решение этой проблемы?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Я нашел решение:

ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule());
    try {
        TypeFactory typeFactory = objectMapper.getTypeFactory();
        CollectionType collectionType = typeFactory.constructCollectionType(
            List.class, Reference.class);
        List<Reference> referenceList = objectMapper.readValue(references.getInputStream(), collectionType);



    } catch (IOException e) {
        throw new CustomException(CustomError.ERROR_REFERENCE_FILE_BAD_FORMAT);
    }
0 голосов
/ 08 апреля 2019

Вы можете использовать InputStreamReader, чтобы прочитать составную часть InputStream:

try (InputStream in = references.getInputStream()) {
    objectMapper.readValue(new InputStreamReader(in), Reference.class);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...