Jsonda 0.4.0リリース
昨日、Jsonda 0.4.0をリリースしました。先日の日記では、次のバージョンを0.3にするようなことを書いたのですが、リリース版のメジャーバージョンは0.2 -> 0.4 -> 0.6のようにすることにしました。
Jsonda 0.2.1と同じく、Scala 2.9.1とScala 2.9.2用にクロスビルドしています。sonatypeにpublishしているので、以下の一行をbuild.sbtに追加するだけで使えます。
libraryDependencies += "com.github.kmizu" %% "jsonda" % "0.4.0"
0.4の主な変更点は、Jsonda DSLのコアを特定のJSONライブラリ非依存にしたことです。これによって、lift-json、json4s、scala.util.parsing.jsonのオブジェクトを同じDSLで構築できます。
たとえば、
import com.github.kmizu.jsonda.dsl.LiftJsonDSL._ val person = %{ 'name :- "Kota Mizushima" 'age :- 29 }
とした場合、lift-jsonのJsonAST.JObjectが返ってきます。また、
import com.github.kmizu.jsonda.dsl.StdJsonDSL._ val person = %{ 'name :- "Kota Mizushima" 'age :- 29 }
とした場合、scala.util.parsing.jsonのJsonObjectが返ってきます。他にもjson4sにも対応していますが、これは今のところlift-jsonとほぼ同じなので省略。
また、Option型にも対応しました。これによって、
val hoge = %{ 'foo :- Option(100) 'bar :- None }
とした場合、
{"hoge":100, "bar":null}
というJSONに相当するオブジェクトが作られるようになりました。
その他には、テストケースの追加、null絡みのバグをいくつか修正しました。Jsondaの開発では、これまでGithubのIssues等のIssue Trackerを使ってなかったせいで直した不具合が曖昧になっていました。これはリリース内容書くときにも不便だということに気づいたので、これからはGithubのIssuesに不具合を登録していきます。