Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Как принять и прочитать массив строк при помощи Spring 3?

#spring #json #java


Здравствуйте. Как принять и прочитать массив строк при помощи Spring 3? В качестве
JSON-запроса выступает массив строк. Выглядит он так:

["cnh","dfd","asd"]

Вот то, что принимает на сервере:
@RequestMapping(value = "/deleteelements.form")
@ResponseBody
public String deleteElements(/* ??? */) {
}
    


Ответы

Ответ 1



Попробуйте @RequestMapping(value = "/deleteelements.form") @ResponseBody public String deleteElements(@RequestBody String elements[]) { } Разумеется, для этого Spring должен видеть библиотеку Jackson. В случае с мавеном добавьте зависимости: org.codehaus.jackson jackson-core-lgpl 1.8.4 org.codehaus.jackson jackson-mapper-lgpl 1.8.4 commons-collections commons-collections 3.2.1 Или просто киньте соответствующие jar-ники в WEB-INF/lib. Кроме того, у входящего HTTP-запроса заголовок Content-type должен соответствовать application/json.

Ответ 2



UPD На самом деле интеграция с Jackson реализована в Spring (MappingJacksonHttpMessageConverter), достаточно только подключить его библиотеки, см. ответ @Nofate. Для того, чтобы заработал вариант @Nofate, необходимо сначала добавить конвертер, так как в Спринге нет конвертера для массивов строк. На SO показывается, как это можно сделать (кофигурирование вроде бы должно быть упрощено в Spring 3.1M1): вкратце это просто реализация интерфейса/абстрактного класса конвертера и его регистрация. В самом конвертере можно использовать, к примеру, Jackson, для преобразования. Если это только один раз нужно, то можно сделать и напрямую: @RequestMapping(value = "/deleteelements.form") @ResponseBody public String deleteElements(@RequestBody byte[] data) { // делает то же самое, что делали бы конвертере, // скармливаем Jackson'у байтовый массив }

Комментариев нет:

Отправить комментарий