Переименуйте поля JSON, используемые MappingJacksonJsonView в Spring - PullRequest
15 голосов
/ 25 октября 2011

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

Это потому, что я должен вывести имена полей, такие как "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.

Ответы [ 2 ]

29 голосов
/ 25 октября 2011

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

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

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

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

  //...
8 голосов
/ 25 октября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...