[解決済み] Jackson は 'is' を削除してプリミティブな boolean フィールドの名前を変更した。
2022-06-13 12:12:30
質問
これは重複しているかもしれません。しかし、私は私の問題に対する解決策を見つけることができません。
私はクラスを持っています
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はシリアライズ時にセッターメソッドを使用しているのでしょうか?どうすればキーをフィールド名そのものにできますか?
どのように解決するのですか?
これは少し遅い回答ですが、このページに来る他の人にとっても役に立つかもしれません。
JacksonがJSONにシリアライズする際に使用する名前を変更するための簡単な解決策は、JSONにシリアライズするために JsonProperty アノテーションを使用することであり、したがって、この例は次のようになります。
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")
と書くこともできます。
value
要素しかないため
関連
-
Spring Boot による HTTPS アクセスの設定
-
final, finally, finalizeの違いについて話してください。
-
javaで非静的な解を静的な参照にすることができない
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
IDEA パッケージステートメントの欠落
-
Java(1)仕上げの基本概念+eclipseのインストール構成
-
[解決済み] Jackson を使用してオブジェクトの配列をデシリアライズする方法
-
[解決済み] シリアライズ中にフィールドの値が NULL の場合、それを無視するように Jackson に指示するにはどうすればよいですか?
-
[解決済み] Jackson JSONとHibernate JPAによる無限再帰の問題
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
IllegalArgumentException この例外を解決する方法
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
プロローグでのコンテンツは禁止されています
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)