2011-10-25 1 views
11

Я использую MappingJacksonJsonView для сериализации для JSON класса, однако я хотел бы иметь возможность переименовывать некоторые поля из имени по умолчанию на основе имени получателя.Переименовать поля JSON, используемые MappingJacksonJsonView весной

Это потому, что я должен вывести имена полей, такие как «delete_url» и «delete_type» для загрузки файла jQuery. Я использую @Jsonserialize аннотацию, чтобы вручную выбрать поля для сериализации.

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

    @JsonSerialize 
    String getName(); 

    @JsonSerialize 
    String getDelete_url(); 

    ... 

Например, я вынужден вызвать метод getDelete_url(), в то время как я хотел бы назвать это getDeleteUrl(), но все-таки выход ключ "delete_url" при сериализации в JSON.

ответ

22

Вы должны быть в состоянии получить квалификацию @JsonProperty.

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

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

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

    //... 
+0

Я создаю веб-сервис, используя Spring MVC, который просто возвращает json reposne. Это не работает в моем случае. Он берет только имя поля. – Badal

8

Вы пробовали использовать аннотацию @JsonProperty?

«Определяет имя логического свойства, то есть имя поля объекта Json, которое будет использоваться для свойства: если пустая строка (которая является значением по умолчанию), будет использовать имя поля, которое аннотируется».

Смежные вопросы