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

Web*_*ser 4 jackson spring-boot

我正在使用一个简单的基于 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;
   }
}
Run Code Online (Sandbox Code Playgroud)

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

SomePojo sm = new SomePojo();
sm.setFullName("John Doe");
Run Code Online (Sandbox Code Playgroud)

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

{ "name" : "John Doe" }
Run Code Online (Sandbox Code Playgroud)

但我看到

{ "fullName" : "John Doe" }
Run Code Online (Sandbox Code Playgroud)

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

Vel*_*aga 6

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