2011-10-25 49 views
11

我使用MappingJacksonJsonView将序列化为JSON的类,但是,我希望能够根据getter名称从默认名称中重命名某些字段。在Spring中重命名MappingJacksonJsonView使用的JSON字段

这是因为我必须为jQuery文件上传输出字段名称,如“delete_url”和“delete_type”。我使用@Jsonserialize注释来手动选择要序列化的字段。

@JsonAutoDetect(getterVisibility = Visibility.NONE) 
public interface Picture { 

    @JsonSerialize 
    String getName(); 

    @JsonSerialize 
    String getDelete_url(); 

    ... 

举例来说,我被迫调用一个方法getDelete_url(),而我想叫它getDeleteUrl(),但还是输出序列化到JSON当钥匙"delete_url"

回答

22

您应该有资格使用@JsonProperty

@JsonAutoDetect(getterVisibility = Visibility.NONE) 
public interface Picture { 

    @JsonSerialize 
    @JsonProperty("name") 
    String getName(); 

    @JsonSerialize 
    @JsonProperty("delete_url") 
    String getDeleteUrl(); 

    //... 
+0

我正在使用Spring MVC创建一个Web服务,它只是返回json reposne。这不适用于我的情况。它只是以该领域的名字。 – Badal

8

您是否尝试过使用@JsonProperty注释?

“定义逻辑属性的名称,即用于属性的Json对象字段名称:if empty String(默认值)将使用注释字段的名称。”