YAML定義からJavaオブジェクトを自動生成する

はじめに

今回はjs2pライブラリを使い、YAML定義からJavaオブジェクトを自動生成する一例をご紹介します。

※補足
今回ご紹介するライブラリは、jsonschema2pojo-gradle-pluginをベースに作成されております。
こちらのREADMEによると、jsonschema2pojo-gradle-pluginは、今後開発されることが無いようです。
そのため、代わりに今回ご紹介するjs2pライブラリの利用が推奨されています。

環境

  • Windows 10
  • Java 11.0.2
  • Gradle 6.7
  • js2p 1.0

前提

  • Gradleプロジェクト作成済み

自動生成するJavaオブジェクトを定義したYAMLを作成する

src/main/resources配下にpojo-schema.yamlを作成します。
作成したpojo-schema.yamlの編集を行い、今回自動生成するJavaオブジェクトを定義します。

ライブラリの追加と自動生成に関する設定をする

以下のコメントを参考にbuild.gradleを編集して、Javaオブジェクトの自動生成に関する設定を行います。

Javaオブジェクトを自動生成する

プロジェクト直下に移動して、以下のコマンドを実行します。

自動生成されたJavaオブジェクトを確認する

build.gradleで指定した出力先に自動生成されたオブジェクトが配置されているのが確認できます。
自動生成されたオブジェクトには、YAMLで定義したオブジェクトのプロパティに加えてbuild.gradleで指定したメソッドも追加されていることが確認できます。メソッドについては、いずれもbuild.gradleで行う設定で追加有無の変更が可能です。
・PojoSchema.java

・ParentObject.java

・ChildObject.java

まとめ

今回はシンプルなJavaオブジェクトを生成しましたが、設定でJSONデータとの対応付けや
BeanValidationを有効にすることができます。そのため、複雑なJSONを変換するための
オブジェクトを自動生成するのに重宝しそうです。
他にも様々な設定があるため、気になる方は以下をご参照ください。
jsonSchema2Pojoの設定一覧


--------------------------
システム開発のご要望・ご相談はこちらから

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です