2011-10-25 88 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(默認值)將使用註釋字段的名稱。」