Spring: вернуть JSON от контроллера как ModelAndVIew
Как я могу вернуть JSON из контроллера spring в виде представления или ModelAndView
? Я не заинтересован в использовании аннотации @ResponseBody
. Есть ли другой способ сделать это?
Ответы
Ответ 1
Да, вы можете вернуть MappingJacksonJsonView
или назначить его объекту ModelAndView
, используя mav.setView(new MappingJacksonJsonView())
.
Обновление: в Spring 4 MappingJacksonJsonView устарел. Возможно, вам захочется перейти на MappingJackson2JsonView
Ответ 2
Вы можете использовать класс org.codehaus.jackson.map.ObjectMapper
для записи строк json для вывода потока. Используйте следующий фрагмент кода в методе вашего контроллера:
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outputStream, model);
outputStream.flush();