Jacksonに関するgrasso0210のブックマーク (2)

  • Jacksonで、JSONをコンテナ型(ListやMapなど)のような型引数を持ったクラスにデシリアライズする - CLOVER🍀

    これは、なにをしたくて書いたもの? Jacksonを使ってJSONをデシリアライズする時に、ObjectMapper#readValueをよく使うわけですが。そういえば、自分で 書いている時にListやMapといったジェネリックな型にデシリアライズしたことがないな、と思い。 工夫が要りそうだなと思い、ちょっと調べてみることに。 デシリアライズ時に型情報を与える まずは、ObjectMapper#readValue(第2引数がClassクラスの方)のJavadocを見てみます。 readValue(JsonParser p, Class valueType) よくよく見ると、こんなことが書いてあります。 Note: this method should NOT be used if the result type is a container (Collection or Map. The

    Jacksonで、JSONをコンテナ型(ListやMapなど)のような型引数を持ったクラスにデシリアライズする - CLOVER🍀
  • JacksonでYamlをパースする。

    SimpleJukeっていうDiscord用のMusicBotを開発しています。 最近それのv0.1.0ができました。 SimpleJukeは設定ファイルにYamlを採用していて 0.8.0まではsnakeYamlを採用していました。 ただこいつがちょっと面倒くさくて、Objectに変換する場合は引数の定義をpublicにするかsetterを配置する必要がありました。 プログラム側から変更を加えることのない設定ファイルなのでSetterは必要なくて、コード量的な意味で考えればpublicにするのがベストなのですが、 v0.1.0から外部モジュール(プラグイン的なやつ)からかなり早い段階で設定クラスにアクセスできるようになりまして、ここで意図しない変更を加えられた場合最悪の場合深刻な問題が生じる可能性がありました。 なので設定クラスは外部から変更できないようにする必要がありました。 一応sn

    JacksonでYamlをパースする。
    grasso0210
    grasso0210 2022/12/17
    YAML パースのサンプル。
  • 1