2010-12-05 53 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调用在Jackson JSON处理器上构建的MappingJacksonHttpMessageConverter。当您使用mvc:注释驱动的配置元素和Jackson存在于您的类路径中时,会自动启用此实现。

所以,你可以通过重写的

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

方法MappingJacksonHttpMessageConverter提供自己的HttpMessageConverter执行,这可能对服务器的目的。

1

关于评论的快速注释:评论不是(唉!)JSON规范的一部分,所以使用它们意味着使用非标准的JSON。对于它的价值,可以制作一些JSON解析器(包括Jackson)处理注释(对于Jackson,请参见http://wiki.fasterxml.com/JacksonFeaturesParser)。以及写入它们(需要使用'JsonGenerator.writeRaw(“/ ... /”)')。

但也许Spring有一种方法来装饰响应,因为这可能会更容易实现。

相关问题