Проблема с API: невозможно десериализовать экземпляр ... из маркера START_OBJECT \ n - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть шаблон отдыха, который вызывает API. Это должно вернуть список имен пользователей, вот результат вызова:

{"userName":"user1"}
{"userName":"user2"}
{"userName":"user3"}

Как вы можете видеть, это на самом деле не формат JSON, поэтому, когда я вызываю свой restTemplate:

restTemplate.postForObject(MONITORING + QUERY, request, MyCustomClass[].class);

Где MyCustomClass:

public class EndpointCallEvents {
    private String userName;
}

У меня следующая ошибка:

Could not read document: Can not deserialize instance of [mypackage].MyCustomClass[] out of START_OBJECT token \n at [Source: java.io.PushbackInputStream@25d18d7; line: 1, column: 1]

Но если я вызываю без массива на MyCustomClass, я получаю только один результат:

restTemplate.postForObject(MONITORING + QUERY, request, MyCustomClass.class);

Итак, я попытался с фальшивкой JSON: я получил результат String, поставил "[" и "]" и заменил \ n символы запятыми, за исключением последнего объекта. Затем при вызове restTemplate с классом MyCustomClass []. Я получаю массив объектов MyCustomClass.

Поэтому мне было интересно, как я могу вызвать restTemplate и разобрать его в «реальный JSON» или что-то еще, чтобы получить массив объектов и избежать получения строки вначале, а затем проанализировать ее et c et c

Спасибо, ребята!

...