web-dev-qa-db-ja.com

SpringでMappingJacksonJsonViewによって使用されるJSONフィールドの名前を変更します

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"_を出力します。

16
stivlo

@JsonProperty を使用して資格を得ることができるはずです。

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

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

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

  //...
30

@ JsonProperty アノテーションを使用してみましたか?

"論理プロパティの名前、つまりプロパティに使用するJsonオブジェクトフィールド名を定義します。空の文字列(デフォルト)の場合、注釈が付けられたフィールドの名前を使用します。"

8
Juliano Alves