2012年8月13日月曜日

JsonPullParser勉強会に行って来ました。 #jppatk

ドラクエのレベル上げ辛いです。

みけです。

ひょんなことから


わかめ氏のつくった軽量のJSONパーサーである、

JsonPullParser勉強会に行って来ました。

なお、当日の参加者によるツイートはまとめられています。


宗教戦争


このブログをご覧の方はご存知のことかと思いますが、

わかめ氏はeclipseユーザーですが、

僕やイケメンこと山本裕介氏は最強のJava IDEである、

IntelliJ IDEAのユーザーです。

というわけで、アノテーションプロセッサーの設定方法で若干、

戸惑いました。

わかめ
mvn eclipse:eclipseして、mavenプロジェクトをeclipseで読み込めるようにします。

イケメン
ま、僕らIntelliJ IDEAユーザーだからpom.xmlをそのまま読み込めるんだけどね。

わかめ
なにーーー!

…30分後

わかめ
IntelliJ はわからないけど、eclipseで Java Compiler > Annotation Processing を選んで…

イケメン
IntelliJ でどうやるんだろう?

みけ
う〜ん、どうやるんだろう?

わかめ
ドヤァ



こんなやりとりがあったとか、なかったとか…


IntelliJ IDEAでの設定


正しくは次のように設定します。

  • IntelliJ IDEAのPreferenceを選びます。
  • Compiler > Annotation Processors を開きます。
  • Enable Annotation Processing にチェックを入れます。
  • Processor Pathにjsonpullparser-apt-1.4.11.jarのパスを入力します。
  • Annotation Processorsのところで + ボタンを押して、次のとおり入力します。
    • Processor FQN に net.vvakame.util.jsonpullparser.factory.JsonAnnotationProcessorと入力します。
    • Processor Options に JsonPullParserClassPostfix=Generatedと入力します。
  • Processed Modules にて + ボタンを押して、 Generated Source Directory Name に .apt_generated(ここは好きに入れて下さい)と入力します。
  • OKボタンを押します。
  • 次にProject Structureを開きます。
  • Modules > Sources を選びます。
  • .apt_generatedディレクトリーを選択して、Sourcesボタンを押します。
  • OKボタンを押します。


以上で設定は完了です。


ソースを自動生成


Eclipseではファイルを保存するという行為が必要ですが、

IntelliJ IDEAは勝手にファイルを保存してくれます。

(「手動でファイルを保存するのが許されるのは小学生までだよねぇ、キャッキャッ」とは言いませんが…)

そのため、Eclipseではファイル保存というトリガーによって、

Annotation Processorが起動しますが、

IntelliJ IDEAではトリガーがないので、

手動でAnnotation Processorを起動する必要があります。

手順は以下のとおり。

  • Build > Rebuild Projectを選択します。


簡単ですね。


JsonPullParserのアノテーションたち


JsonPullParserで重要なアノテーションは以下の二つです。

  • @JsonModel
    • 一つのオブジェクトを表象するアノテーション
    • Javaのクラスに付与する
  • @JsonKey
    • 一つのキー-バリューペアを表象するアノテーション
    • Javaのクラスのプロパティに付与する
    • decamelizeをtrueにすると、Javaではあまり望まれないような体裁のキー(例:first_name)をJavaのスタイルのプロパティー(例firstName)に合わせてくれます。
    • valueにキー値を設定することで、classなどJavaで予約語となっているようなキーのマッピングを指定することができます。
    • converterを指定すると、JsonPullParserを直接操作することが可能になります。


まあ、やってみよう!



というわけで、さっそくモデルクラスを書いて、

パーサーを作ってもらいましょう!




このモデルを書いた後、一度ビルドします。

その後にテストを書きます。





実行結果は…




おお、成功しました(∩´∀`)∩ワーイ


ちなみに、Groovyクラスタの方は自重して下さい。


さて、ここまでできることがわかると、


Groovy使いの僕としては、

アノテーションプロセッサーの設定を手でするのが面倒になってきます。

というわけで、アノテーションプロセッサーをビルドに含める、build.gradleを作成しました。

こんな感じ。





あ、そういえば、Annotation Processingって、gradleでどうやるんだろう… T.B.D.

0 件のコメント:

コメントを投稿