【发布时间】:2015-05-29 18:40:28
【问题描述】:
我正在使用 spring @RestController 和 HttpMessageConverter 创建一个休息 web 服务。
在我的控制器方法返回一些 POJO 并且 spring 使用“MappingJackson2HttpMessageConverter”将其转换为 JSON 的简单场景中工作正常,如下所示:
{
"firstName": "John",
"lastName": "Smith",
}
但是 JSON 中的属性名称与我的 POJO 中的 getter 名称相同。我想动态修改 JSON 中的属性名称。
其实需求是根据逻辑修改JSON属性名。例如,如果条件 X,则 JSON 中的属性名称应如下所示:
{
"fName": "John",
"lName": "Smith",
}
如果为 Y,则 JSON 输出中的属性名称应该是其他类似的名称:
{
"MainName": "John",
"SecondName": "Smith",
}
所以属性名称不能与 pojo 绑定,我也不能使用 @jsonproperty,因为那将是编译时,但我想在运行时更改。
有没有办法覆盖 MappingJackson2HttpMessageConverter 并将我的逻辑放在那里来决定 json 属性名称?
【问题讨论】:
标签: java json spring-mvc