2010-12-05 5 views
0

весной 3 контроллерзакомментируйте JSON, прежде чем отправить клиенту

@RequestMapping(value = "/employee/{id}", RequestMethod.GET) 
public @ResponseBody Employee getEmployee(@PathVariable long empID) { 
    Employee employee = employeeService.getByID(empID); 
    return employee; 
} 

, какой файл я должен изменить, так что JSON вернется, как ниже

вместо возвращения "['foo', 'bar']"

возвращение этого "/*['foo', 'bar']*/" (с комментариями)?

+0

Какой прецедент для этого? – skaffman 2010-12-05 15:00:14

+1

@ skaffman, ты знаешь причину этого? перейдите сюда http://tinyurl.com/mq96sh, см. главу «Защита вашего односайтового приложения» – cometta 2010-12-05 15:03:06

ответ

1

Под обложками Spring MVC делегирует делегатам HttpMessageConverter для выполнения сериализации. В этом случае Spring MVC вызывает MappingJacksonHttpMessageConverter, построенный на процессоре Jackson JSON . Эта реализация включается автоматически, когда вы используете mvc: аннотированный элемент конфигурации с Джексон присутствует в вашем пути к классу.

Таким образом, вы можете предоставить свою собственную HttpMessageConverter реализацию путем переопределения

protected void writeInternal(Object o, 
         HttpOutputMessage outputMessage) 
        throws IOException, 
         HttpMessageNotWritableException 

метода MappingJacksonHttpMessageConverter, который мог бы сервер цели.

1

Замечание относительно комментариев: комментарии не являются (увы!) Частью спецификации JSON, поэтому использование их означает использование нестандартного JSON.

Для чего стоит, чтобы некоторые JSON-парсеры (включая Jackson) обрабатывали комментарии (для Jackson, см. http://wiki.fasterxml.com/JacksonFeaturesParser); а также написать их (необходимо использовать JsonGenerator.writeRaw ("/ ... /") ').

Но, возможно, у Весны есть способ украсить ответ, поскольку это, вероятно, будет проще реализовать.

Смежные вопросы