评论了JSON之前发送到客户端
问题描述:
在春季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']*/"
(有评论)?
答
在封面之下,Spring MVC委托HttpMessageConverter
执行序列化。在这种情况下,Spring MVC调用在Jackson JSON处理器上构建的MappingJacksonHttpMessageConverter
。当您使用mvc:注释驱动的配置元素和Jackson存在于您的类路径中时,会自动启用此实现。
所以,你可以通过重写的
protected void writeInternal(Object o,
HttpOutputMessage outputMessage)
throws IOException,
HttpMessageNotWritableException
方法MappingJacksonHttpMessageConverter提供自己的HttpMessageConverter
执行,这可能对服务器的目的。
答
关于评论的快速注释:评论不是(唉!)JSON规范的一部分,所以使用它们意味着使用非标准的JSON。对于它的价值,可以制作一些JSON解析器(包括Jackson)处理注释(对于Jackson,请参见http://wiki.fasterxml.com/JacksonFeaturesParser)。以及写入它们(需要使用'JsonGenerator.writeRaw(“/ ... /”)')。
但也许Spring有一种方法来装饰响应,因为这可能会更容易实现。
这是什么用途? – skaffman 2010-12-05 15:00:14
@skaffman,你的意思是做这个的原因是什么?去这里http://tinyurl.com/mq96sh,看标题'保护你的单站点应用' – cometta 2010-12-05 15:03:06