ホームページ > Java > YAML を使用して Java 列挙型を (逆) シリアル化する方法はありますか?

YAML を使用して Java 列挙型を (逆) シリアル化する方法はありますか?

WBOY
リリース: 2024-02-08 22:15:18
転載
977 人が閲覧しました

php エディターのイチゴの答え: はい、Java 列挙型と YAML をシリアル化および逆シリアル化する方法があります。 Java 列挙型は、Jackson、Gson、またはその他の JSON ライブラリを使用してシリアル化および逆シリアル化できます。 YAML は人間にとって使いやすいデータ形式であり、Jackson、SnakeYAML、またはその他の YAML ライブラリを介して Java 列挙型をシリアル化および逆シリアル化するために使用することもできます。これらのライブラリを使用すると、データの送信と保存のために Java 列挙型を YAML に簡単に変換できます。

質問内容

列挙型を含む Java オブジェクトを YAML 表現との間でシリアル化および逆シリアル化しようとしています。これを行うために Jackson (com.fasterxml.jackson) パッケージを使用しようとしています。

次の例外が発生し続けます:

リーリー

何らかのアダプターまたはコンバーターが必要だと思いますが、YAML で何が利用できるのか (存在する場合) がわかりません。

###参考のために:###

メトリック.java:

リーリー

data.yaml:

リーリー

Parser.java:

Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `com.beastcode.devops.prometheusbroker.domain.Metric$Type` from String "counter": not one of the values accepted for Enum class: [GAUGE, COUNTER]
ログイン後にコピー

Solution

デフォルトでは、Jackson は列挙の

valueOf

メソッドを使用します。大文字と小文字を区別。 これは、

@JsonCreator

: の注釈が付いた静的メソッドを追加することで簡単に変更できます。 リーリー

以上がYAML を使用して Java 列挙型を (逆) シリアル化する方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート