Переименовать поля JSON, используемые MappingJacksonJsonView весной
Я использую 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 ответов:
Вы должны быть в состоянии квалифицироваться с помощью
@JsonProperty.@JsonAutoDetect(getterVisibility = Visibility.NONE) public interface Picture { @JsonSerialize @JsonProperty("name") String getName(); @JsonSerialize @JsonProperty("delete_url") String getDeleteUrl(); //...
Вы пробовали использовать аннотацию @JsonProperty?
"определяет имя логического свойства, то есть имя поля объекта Json, которое будет использоваться для свойства: если пустая строка (что является значением по умолчанию), будет использоваться имя поля, которое аннотируется."
Comments