2016-12-05 55 views
0

我正在使用基于Spring Boot的简单RestController。我返回JSON,但我无法控制响应中生成的密钥的名称。该POJO看起来是这样的:在Spring Boot中自定义JSON响应以更改键名

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的实例。我希望看到

​​

但我看到

{ "fullName" : "John Doe" } 

我使用双方的财产以及其吸气剂@JsonProperty("name")注释试过,但它不工作。 Spring Boot版本是1.4.2。任何关于我失踪的建议?

+0

可能是这样的[链接](http://stackoverflow.com/questions/8560348/different-names-of-json-property-在序列化和反序列化/ 8560615#8560615)将帮助你。 –

+0

http://stackoverflow.com/questions/28324352/how-to-customise-the-jackson-json-mapper-implicitly-used-by-spring-boot可能会有所帮助。 – Yuva

+1

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

回答

2

设置在吸气的@JsonProperty和setter,将工作

+0

谢谢你,工作! –

0

如果你改变this.fullName到this.name

公共无效setFullName(字符串全名){ this.fullName =全名; }

+0

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

相关问题