java - 在发送给客户端之前注释掉 json

标签 java spring rest jackson

在 spring 3 Controller 中

@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 委托(delegate)给 HttpMessageConverter 来执行序列化。在这种情况下,Spring MVC 调用基于 Jackson JSON 处理器构建的 MappingJacksonHttpMessageConverter。当您使用 mvc:annotation-driven 配置元素且类路径中存在 Jackson 时,会自动启用此实现。

因此,您可以通过重写来提供自己的 HttpMessageConverter 实现

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

MappingJacksonHttpMessageConverter的方法,可以达到目的。

关于java - 在发送给客户端之前注释掉 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4359335/

相关文章:

java - 流程应用程序执行失败 :dexDebug after adding BaseGameUtils

java - GridBagLayout:设置组件的位置

javascript - 在浏览器中进行 RESTful API 测试

rest - 角度 6 woocommerce REST 身份验证

Spring 集成 Redis RPOPLPUSH

c# - 在 UWP 中接收来自 HttpClient 的响应时编码错误

java - 使用按钮创建场景后在场景周围移动多个矩形

java - 如何让 Java 使用 Scanner 读取非常大的文件?

java - 如何在 SOAPHandler 中使用 spring bean

java - 如何在 Spring Cloud Gateway 中添加特定于路由的自定义过滤器