在 Spring Boot 中自定义 JSON 响应以更改键名

Posted

技术标签:

【中文标题】在 Spring Boot 中自定义 JSON 响应以更改键名【英文标题】:Customize JSON response in Spring Boot to change key names 【发布时间】:2017-04-19 13:05:03 【问题描述】:

我正在使用一个简单的基于 Spring Boot 的 RestController。我正在返回 JSON,但我无法控制响应中生成的键的名称。 POJO 看起来像这样:

public class SomePojo 
   @JsonProperty("name")
   private String fullName;
   @JsonProperty("name")
   public String getFullName() 
     return fullName;
   
   public void setFullName(String fullName) 
     this.fullName = fullName;
   

如果我创建一个新实例如下:

SomePojo sm = new SomePojo();
sm.setFullName("John Doe");

并在@ResponseBody 中返回实例。我期待看到

 "name" : "John Doe" 

但我看到了

 "fullName" : "John Doe" 

我尝试在属性及其 getter 上使用 @JsonProperty("name") 注释,但它不起作用。 Spring Boot 版本是 1.4.2。关于我缺少什么的任何建议?

【问题讨论】:

也许这个link会帮助你。 ***.com/questions/28324352/… 可能会有所帮助。 在 getter 和 setter 中设置 @JsonProperty 它将起作用。 @VelNaga 是的,这行得通!请将此添加为答案,以便我选择它作为正确答案。 @WebUser 我发布了答案。感谢您的回复。 【参考方案1】:

在 getter 和 setter 中设置 @JsonProperty 它将起作用

【讨论】:

【参考方案2】:

如果将 this.fullName 更改为 this.name 会怎样

public void setFullName(String fullName) this.fullName = 全名;

【讨论】:

编译错误,因为SomePojo没有name属性。

以上是关于在 Spring Boot 中自定义 JSON 响应以更改键名的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 1.4 中自定义 Jackson

在 Spring Boot 中自定义异常返回空消息 [重复]

Spring Boot中自定义注解

使用 IntelliJ 在 Spring Boot 中自定义应用程序属性

spring boot中自定义验证的参数化junit测试

spring boot自定义配置