play-json4s をリリースしました
https://github.com/tototoshi/play-json4s
Play 標準の Json はちょっと使いにくいなあということで、以前 Play でも lift-json を使えるようにするライブラリ(https://github.com/tototoshi/lift-json-play-module)を作りました。
Play 2.1 のリリースとともに lift-json モジュールも更新する必要が出てきたんですが、最近は json4s がホットな感じなので json4s 用のモジュールも作りました。
json4s は lift-json の後を継ぐことと、Scala のにたりよったりな json ライブラリを統一的に扱うことを目指しているらしいです。ハイ。
json4s は今は improved lift-json みたいな json4s-native と Jackson がバックエンドの json4s-jackson があるので、両方で使えるようにしました。
json4s-native を使いたければ
libraryDependencies ++= Seq( "com.github.tototoshi" %% "play-json4s-native" % "0.1.0", "com.github.tototoshi" %% "play-json4s-test-native" % "0.1.0" % "test" )
json4s-jackson を使いたければ
libraryDependencies ++= Seq( "com.github.tototoshi" %% "play-json4s-jackson" % "0.1.0", "com.github.tototoshi" %% "play-json4s-test-jackson" % "0.1.0" % "test" )
を設定に追加してください
このモジュールが提供するのは2つ。Json4s トレイトとテストヘルパーです。
Json4s トレイトは BodyParser と implicit object が入ったトレイトです。Play のコントローラーに mix-in して使います。
テストヘルパーは Pimp my library で FakeRequest に #withJson4sBody というメソッドを追加します。また、レスポンスのボディを Json4s の Json オブジェクトに変換する #contentAsJson4s も提供します。
詳しくは README にサンプル書いたのでそちらを参照してください。
ちなみに Play 本体には contentAsJson がないけど欲しかったのでこの前プルリクエスト投げときました。で、イイネみたいなこと言われたきり一ヶ月くらいたってる気がするけどまだマージされてないです。。。
lift-json のモジュールのほうも一応 2.1 対応はするつもりです。使ってる人いるっぽいので。