これは重複している可能性があります。しかし、私の問題に対する解決策を見つけることができません。
授業がある
public class MyResponse implements Serializable {
private boolean isSuccess;
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
}
ゲッターとセッターは Eclipse によって生成されます。
別のクラスでは、値を true に設定し、JSON 文字列として書き込みます。
System.out.println(new ObjectMapper().writeValueAsString(myResponse));
JSON では、キーは として表されます{"success": true}
。
キーをそれisSuccess
自体にしたいです。Jackson はシリアル化中に setter メソッドを使用していますか? キーをフィールド名自体にするにはどうすればいいですか?
ベストアンサー1
これは少し遅い回答ですが、このページにアクセスする他の人にとっては役立つかもしれません。
ジャクソンがJSONにシリアル化するときに使用する名前を変更する簡単な解決策は、@Jsonプロパティ注釈なので、例は次のようになります。
public class MyResponse implements Serializable {
private boolean isSuccess;
@JsonProperty(value="isSuccess")
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
}
これは として JSON にシリアル化されます{"isSuccess":true}
が、ゲッター メソッド名を変更する必要がないという利点があります。
この場合、アノテーションを次のように記述することもできます。要素@JsonProperty("isSuccess")
は1つだけです。value