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();