Джерси: массив Json с 1 элементом сериализуется как объект

Я создаю REST-сервер с Джерси / Java, и я обнаружил странное поведение.

У меня есть метод на сервере, который возвращает массив объектов в виде Json

@GET
@Path("/files")
@Produces(MediaType.APPLICATION_JSON)
public Object getFiles() throws Exception{
    DatabaseManager db = new DatabaseManager();
    FileInfo[] result = db.getFiles();
    return result;
}

Код выполняется правильно, и данные возвращаются клиенту (ajax-вызов jQuery). Проблема в том, что формат возвращаемых данных изменяется, если "результат" массив имеет один элемент или несколько.

Ответ с одним элементом:

{"fileInfo":{"fileName":"weather.arff","id":"10"}}

Ответ с двумя элементами:

{"fileInfo":[{"fileName":"weather.arff","id":"10"},{"fileName":"supermarket.arff","id":"11"}]}

Как вы можете видеть, в первом сценарии значениеFILEINFO» Свойство возвращаемого объекта является объектом, а во втором случае значением является массив. Что я делаю неправильно? не должен»В первом случае возвращаем что-то вроде этого:

{"fileInfo":[{"fileName":"weather.arff","id":"10"}]}

то есть массив с одним объектом внутри?

Я знаю, что могу обнаружить это на стороне клиента, но это выглядит как очень уродливый хак.

Спасибо за ваше время.

Ответы на вопрос(7)

Ваш ответ на вопрос