【Java】 Jacksonライブラリ @JsonAnyGetter アノテーションについて 投稿者:Ka-Chan 投稿公開日:2021年6月9日 投稿カテゴリー:Java 投稿コメント:0件のコメント @JsonAnyGetterについて @JsonAnyGetterアノテーションにより、Mapフィールドを標準プロパティとして柔軟に使用することができるようになります。 使用例 例えば、TestBeanエンティティは、nameプロパティとkey/valueのペア形式で拡張可能な属性のセットをもっています。 public class TestBean { public String name; private Map<String, String> properties; @JsonAnyGetter public Map<String, String> getProperties() { return properties; } } このエンティティのインスタンスをシリアル化すると、MapのすべてのKey Valueが標準のプレーンなプロパティとして取得されます。 {“name”:”Mr. bean”,“attr2″:”val2”,“attr1″:”val1”} このエンティティのシリアル化は、実際には次のようになります。 @Test public void whenSerializingUsingJsonAnyGetter_thenCorrect() throws JsonProcessingException { TestBean bean = new TestBean(“Mr. bean”); bean.add(“attr1”, “val1”); bean.add(“attr2”, “val2”); String result = new ObjectMapper().writeValueAsString(bean); assertThat(result, containsString(“attr1”)); assertThat(result, containsString(“val1”)); } また、オプションの引数enabledをfalseにすることで、@JsonAnyGetter()を無効にすることができます。この場合、MapはJsonとして変換され、シリアライズ後にproperites変数の下に表示されます。 タグ: Java Please Share This Share this content Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window その他の記事を読む 前の投稿【Java】 Jacksonライブラリ @JsonProperty アノテーション おすすめ 【Java】 Jacksonライブラリ @JsonProperty アノテーション 2021年6月5日 コメントを残す コメントをキャンセルコメントコメントする名前またはユーザー名を入力してください メールアドレスを入力してコメント Web サイトの URL を入力してください。(任意) 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。